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)

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM