以下のようなカンマ区切りのデータがあるテーブルに対して、検索をかけたい場合(例:user_idが「44」のデータを取得する)に「FIND_IN_SET」を使用する
system_id | user_id |
1 | 32,44,60 |
2 | 30,50 |
php(パターン1)
$query = DB::table('sample')
->whereRaw('FIND_IN_SET("44",user_id)')
->get();
php(パターン2)
$user_id = 44;
$query = DB::table('sample')
->whereRaw('FIND_IN_SET(?, user_id)', [$user_id]);
->get();
SQL
SELECT * FROM sample WHERE FIND_IN_SET('44', user_id)