mysql語句:in,like,find_in_set用法以及區別


目標:查詢callout_session表中qc_normal_label中含有2、3、5

剛測試項目一個數據統計模塊,需要查詢表中某個列含有多個值的情況,剛開始用的是like來進行篩選,

1、剛開始的思路是使用like來進行篩選,后來想了下,如果用like '%2,3,5%',只能篩選出qc_normal_label 列中值包含且排序為2,3,5的數據記錄,如果qc_normal_label 值是無序排序列,那這個sql語句明顯是錯誤的

  

2、在網上搜了下,如果要查詢某個列中存在某個值應該用find_in_set

find_in_set語法:

  select column_name from table_name

  where find_in_set(str,column_name)

in語法:IN 操作符允許我們在 WHERE 子句中規定多個值

  select column_name from table_name

  where column_name in (value1,value2,...)

like是廣泛的模糊匹配,如果你要查詢的列字段值沒有分隔符,進行模糊匹配的話就用like

find 是精確匹配,如果你要查詢的列字段值以英文逗號隔開,要進行精確匹配就用find_in_set

 

 


免責聲明!

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



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