タイトルの通りです!!
こんな感じのテーブル
menusテーブル
id | menu | material |
---|---|---|
1 | オムライス | 卵,ご飯,チキン |
2 | 厚焼きたまご | 卵 |
3 | 唐揚げ定食 | ご飯,チキン |
環境
Laravel5.8
mysql5.7
やってみよう
materialに「卵」が入っているmenuを取得する!
$query = DB::table('menus')
->whereRaw('FIND_IN_SET("卵",material)')
->get();
出力する!
dd($query);
確認する!
オムライスと厚焼きたまごをGET!!!
エスケープしてみる
$colname = '卵'
$query = DB::table('menus');
->whereRaw('FIND_IN_SET(?,material)', [$colname])
->get();
同様に取得できました。
参考サイト
[MySQL]1カラムに登録されたカンマ区切りデータを検索・抽出する方法(FIND_IN_SET)
find in set in laravel ? example