色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql字符不在字符串里

劉姿婷2年前10瀏覽0評論

在MySQL中,當(dāng)我們使用“LIKE”語句來進(jìn)行模糊查詢時(shí),如果我們要查詢的字符不在字符串里,則查詢結(jié)果可能會(huì)出現(xiàn)不符合我們預(yù)期的情況。下面我們來看一個(gè)例子。

SELECT * FROM student WHERE name LIKE '%abc%'

假設(shè)我們的“student”表中有這樣一些數(shù)據(jù):
張三
李四
王五

我們會(huì)以為上述SQL語句將匹配不到我們的數(shù)據(jù),因?yàn)楸碇袥]有“abc”這個(gè)字符,但實(shí)際上結(jié)果卻是:

+--------+
|  name  |
+--------+
| 張三   |
| 李四   |
| 王五   |
+--------+

這是因?yàn)樵贛ySQL中,“%”符號表示通配符,代表匹配任意字符,包括空格。因此,我們的查詢語句實(shí)際上會(huì)被轉(zhuǎn)化為:

SELECT * FROM student WHERE name LIKE '%a%b%c%'

這樣一來,就可以匹配到所有包含“a”、“b”、“c”中任意一個(gè)字符的名字了。

為了避免這種問題,我們可以使用“REGEXP”語句來進(jìn)行正則表達(dá)式匹配,并指定我們要查詢的是一個(gè)整體,如下:

SELECT * FROM student WHERE name REGEXP '^abc$'

上述語句將僅查詢名字為“abc”的學(xué)生信息。當(dāng)然,這里的正則表達(dá)式還可以更加靈活和復(fù)雜,具體的規(guī)則可以參考MySQL官方文檔。