Laravel使用#例如:FIND_IN_SET()精準查詢特殊字符串是否存在指定字符串中 解決 like 無法精準匹配問題
使用場景:精準匹配指定字符串
id | title | type |
---|---|---|
1 | 2018年報 | 1,2,3 |
2 | 2019年報 | 11,33 |
3 | 2020年報 | 22,23 |
業務需求:
- 需要查詢type值 == 2 的數據
此時會發現使用like無法進行精準匹配
此時我們使用Find_in_set() mysql原生語句進行精準匹配
//格式說明
#DB::table('表名')->whereRaw('FIND_IN_SET(?,字段名)',[需要查詢的字符串])->get();
//代碼演示
DB::talbe('article')->whereRaw('FIND_IN_SET(?,type),[2]')->get();
//此時得到結果爲 id爲3的這條數據