請設計資料庫事件字元比較的簡單介紹

本文目錄一覽:

MySQL中的字元串比較

你這兩個都不是字元串的比較函數呀。

MYSQL的字元串比較函數如下:

通常,如果在字元串比較中的任何表達式是區分大小寫的,比較以大小寫敏感的方式執行。

expr LIKE pat [ESCAPE ‘escape-char’]

使用SQL的簡單的正規表達式比較的模式匹配。返回1(TRUE)或0(FALSE)。用LIKE,你可以在模式中使用下列2個通配符字元: % 匹配任何數目的字元,甚至零個字元

_ 精確匹配一個字元

mysql select ‘David!’ LIKE ‘David_’;

– 1

mysql select ‘David!’ LIKE ‘%D%v%’;

– 1

為了測試一個通配符的文字實例,用轉義字元的加在字元前面。如果你不指定ESCAPE字元,假定為「\」:

\% 匹配一%字元

\_ 匹配一_字元

mysql select ‘David!’ LIKE ‘David\_’;

– 0

mysql select ‘David_’ LIKE ‘David\_’;

– 1

為了指定一個不同的轉義字元,使用ESCAPE子句:

mysql select ‘David_’ LIKE ‘David|_’ ESCAPE ‘|’;

– 1

LIKE允許用在數字的表達式上!(這是MySQL對ANSI SQL LIKE的一個擴充。)

mysql select 10 LIKE ‘1%’;

– 1

注意:因為MySQL在字元串中使用C轉義語法(例如,「\n」),你必須在你的LIKE字元串中重複任何「\」。例如,為了查找「\n」,指定它為「 \\n」,為了查找「\」,指定它為「\\\\」(反斜線被分析器剝去一次,另一次是在模式匹配完成時,留下一條單獨的反斜線被匹配)。

expr NOT LIKE pat [ESCAPE ‘escape-char’]

與NOT (expr LIKE pat [ESCAPE ‘escape-char’])相同。

expr REGEXP pat

expr RLIKE pat

執行一個字元串表達式expr對一個模式pat的模式匹配。模式可以是一個擴充的正則表達式。見MySQL 正則表達式句法的 H 描述.如果expr匹配pat,返回1,否則返回0。RLIKE是REGEXP的一個同義詞,提供了與mSQL的兼容性。注意:因為MySQL在字元串中使用C轉義語法(例如,「\n」), 你必須在你的REGEXP字元串重複任何「\」。在MySQL3.23.4中,REGEXP對於正常的(不是二進位)字元串是忽略大小寫。

mysql select ‘Monty!’ REGEXP ‘m%y%%’;

– 0

mysql select ‘Monty!’ REGEXP ‘.*’;

– 1

mysql select ‘new*\n*line’ REGEXP ‘new\\*.\\*line’;

– 1

mysql select “a” REGEXP “A”, “a” REGEXP BINARY “A”;

– 1 0

當決定一個字元的類型時,REGEXP和RLIKE使用當前的字符集(預設為ISO-8859-1 Latin1)。

expr NOT REGEXP pat

expr NOT RLIKE pat

與NOT (expr REGEXP pat)相同。

STRCMP(expr1,expr2)

如果字元串相同,STRCMP()回來0,如果第一參數根據當前的排序次序小於第二個,返回-1,否則返回1。

mysql select STRCMP(‘text’, ‘text2’);

– -1

mysql select STRCMP(‘text2’, ‘text’);

– 1

mysql select STRCMP(‘text’, ‘text’);

– 0

在SQL中怎樣實現字元串大小的比較

sql裡面字元串沒有大小之分,只有長度之分,可以比較長度大小,但是想用一條sql語句直接拿到大小結果來說也不太方便,最好是藉助程序或者sql腳本來做,我用oracle試了下,用case when函數是可以直接比較大小的,比如第一個值比第二個大輸出0,否則輸出1:

select (case when len1len2 then 0 when len1len2 then 1 end) as res from (

select length(‘asd’) as len1,length(‘as’) as len2 from dual) t

JSP-Servlet中如何與資料庫中的字元串比較?跪求!代碼如下

// —————判斷登陸用戶名密碼是否正確————//

public boolean loginSuccess(User user) {

boolean flag = false;

String countSql = ” select count(*) from users where USER_NAME ='”

+ user.getUserName() + “‘ AND USER_PASSWORD='”

+ user.getUserPassword() + “‘”;

int row = 0;

try {

st = con.createStatement();

rs = st.executeQuery(countSql);

while (rs.next()) {

row = rs.getInt(1);

}

} catch (SQLException e) {

e.printStackTrace();

}

if (row 0) {

flag = true;

}

return flag;

}

看看。

勸你不要把JAVA代碼寫在JSP頁面上。。把表現層與業務層分開最好。

SQL資料庫中字元串與char數據類型的比較

別聽別人瞎說,這就是varchar和char的區別當定義了char的長度後如果長度不夠則會自動用空字元補全,而varchar則沒事如果是18位的你查詢的時候用你的18位加一個空格就能查出來了,不過一般用char類型的,長度都是固定的,畢竟補全空格比較麻煩,所以數據類型要謹慎使用

mysql兩個數字型字元串比較!詳細如下

我的答案是純手打的,請認真看,不要浪費我的表情哦~

如果以字元串存儲,格式就是 年月日(20120101等於2012-01-01)的話

首先把 日期字元串 轉換成 合格的日期

concat_ws(連接符號,字元串1,字元串2…)

第一步代碼:

SELECT

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) ) AS 開始日期 ,

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) ) AS 結束日期 ;

————————————————————

第二步,將日期使用日期運算函數進行相減:

TIMESTAMPDIFF(返回結果,日期1,日期2)

最終代碼:

SELECT

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) ) AS 開始日期 ,

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) ) AS 結束日期 ,

TIMESTAMPDIFF(

DAY,

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) ) ,

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) )

) AS 相差天數

;

————————————————————————————-

不好意思,看錯題目,我以為你是要運算。如果是比較,就先把日期轉換為時間戳進行比較是這樣:

unix_timestamp(日期)

SELECT

unix_timestamp(

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) )

) AS 開始日期,

unix_timestamp(

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) )

) AS 開始結束;

————————————————————————–

直接判斷即可

新建一個資料庫來驗證:

CREATE DATABASE test5_4_17

DEFAULT CHARACTER SET utf8

DEFAULT COLLATE UTF8_BIN;

#新建一個test_4_17 使用utf8字元串

USE test5_4_17;

#打開資料庫

CREATE TABLE test(

id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,

date_v VARCHAR(30) NOT NULL

);

INSERT INTO test VALUES(NULL,’20110303′);

INSERT INTO test VALUES(NULL,’20120303′);

INSERT INTO test VALUES(NULL,’20120304′);

INSERT INTO test VALUES(NULL,’20130303′);

SELECT * FROM test; #查看數據有了

SELECT * FROM

test

WHERE

UNIX_TIMESTAMP(date_v) =

unix_timestamp(

CONCAT_WS(‘-‘,

SUBSTRING(‘20120101’,1,4),

SUBSTRING(‘20120101’,5,2),

SUBSTRING(‘20120101’,7,2) )

)

AND

UNIX_TIMESTAMP(date_v) =

unix_timestamp(

CONCAT_WS(‘-‘,

SUBSTRING(‘20120608’,1,4),

SUBSTRING(‘20120608’,5,2),

SUBSTRING(‘20120608’,7,2) )

)

結果是

20120303

20120304

—————————————————————————————–

參數中的 日期字元串 可以換成 欄位名

如何在SQL資料庫中截取字元串並且比較。

CREATE TABLE #商品信息(

CODE VARCHAR(8),

NAME VARCHAR(8)

);

CREATE TABLE #商品瀏覽記錄(

CODE VARCHAR(8),

NAME VARCHAR(8)

);

INSERT INTO #商品信息

SELECT ‘00010001’, ‘可樂’ UNION ALL

SELECT ‘00010002’, ‘汽水’ UNION ALL

SELECT ‘00010003’, ‘啤酒’ UNION ALL

SELECT ‘00020001’, ‘牙刷’ UNION ALL

SELECT ‘00020002’, ‘毛巾’ UNION ALL

SELECT ‘00030001’, ‘內存’ UNION ALL

SELECT ‘00030002’, ‘CPU’

GO

INSERT INTO #商品瀏覽記錄

SELECT ‘00010003’, ‘啤酒’ UNION ALL

SELECT ‘00030002’, ‘CPU’

GO

SELECT

g.*

FROM

#商品信息 g

JOIN

(SELECT DISTINCT SUBSTRING(CODE, 1, 4) FROM #商品瀏覽記錄) v

ON (g.CODE LIKE v.CODE + ‘%’)

CODE NAME

——– ——–

00010001 可樂

00010002 汽水

00010003 啤酒

00030001 內存

00030002 CPU

(5 行受影響)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/198401.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-04 10:25
下一篇 2024-12-04 10:25

相關推薦

  • 英語年齡用連字元號(Hyphenation for English Age)

    英語年齡通常使用連字元號表示,比如 “five-year-old boy”。本文將從多個方面探討英語年齡的連字元使用問題。 一、英語年齡的表達方式 英語中表…

    編程 2025-04-29
  • Python字元轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智慧等領域廣泛應用。在很多場景下需要將字元串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字元轉列…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • Python計算中文字元個數

    本文將從多個方面對Python計算中文字元個數進行詳細的闡述,包括字元串長度計算、正則表達式統計和模塊使用方法等內容。 一、字元串長度計算 在Python中,計算字元串長度是非常容…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29

發表回復

登錄後才能評論