mysql模糊查詢1,11,111用逗號(其他符號)拼接的相似字符串

mysql模糊查詢1,11,111用逗號(其他符號)拼接的相似字符串

 

mysql進行模糊查詢時,基本都是LIKE "%sss%",有時候這種查詢時準確的,但是有種情況這種查詢會出現很大問題。

看一下下面這張表

如果想查詢字段test包含1的數據,一般我們會用常規方式查詢,如下:

SELECT * FROM c_test WHERE test LIKE "%1%"

但是查詢結果不盡人意,如下:

 

不僅把包含1的查出來了,包含11,110的都查詢出來了,這並不是我們想要的結果,因爲我們只想要id爲1的數據

此時,sql就有了大問題,我們可以做如下修改,將test字段值的兩端都加上英文逗號,然後再LIKE查詢,就不會有這種問題了,

sql如下:

SELECT * FROM c_test WHERE CONCAT(",",test,",") LIKE "%,1,%"

此時的查詢結果如下:

這纔是我們想要的結果。

還有一種方式,用mysql函數FIND_IN_SET(str,strlist)

 sql如下:

SELECT * FROM c_test WHERE FIND_IN_SET("1",test)

 

 但是這種方式只適用於用逗號隔開的字符串,使用時要注意一下

劈天造陸,開闢屬於自己的天地!!!與君共勉
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章