如何使用MySQL find_in_set函數查詢字段包含指定值?

如何使用MySQL find_in_set函數查詢字段包含指定值?

利用 mysql 的 find_in_set 函數查詢字段包含指定值

mysql 數據庫中,當表字段包含以逗號分隔的多個值時,我們無法像模糊查詢那樣直接找到匹配指定值的記錄。這時,find_in_set 函數可以幫助解決此問題。

假設我們有一個表名為 “test”,其中包含以下 “ids” 字段值:

| ids | |---|---| | null | | 350 | | 34,35,36,37 |

如果我們需要查找包含數字 “35” 的記錄,可以使用以下查詢:

select * from test where find_in_set(35, ids)

find_in_set 函數將 “35” 作為第一個參數,將 “ids” 字段值作為第二個參數。該函數返回一個數字,表示 “35” 在 “ids” 字段值中的位置,如果不存在則返回 0。

上面寫出的查詢實際上尋找 “ids” 字段值中包含 “35” 的記錄,因此它將返回以下結果:

| ids | |---|---| | 34,35,36,37 |

請注意,即使 “350” 也包含數字 “35”,但它不包含在由逗號分隔的純數字字符串中,因此 find_in_set 函數不會將其匹配。

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享