web-dev-qa-db-ja.com

laravel?の例でセットを見つける?の例

私はララヴェルの新人です。私のクエリは、カンマ区切りのフィールドから値を見つける必要があります。

これが私のテーブルです:

tags_value

╔════╦══════════════╗
║ id ║     tags     ║
╠════╬══════════════╣
║  1 ║ css,html,php ║
║  2 ║ php,Java,css ║
║  3 ║ Java,c++,ios ║
╚════╩══════════════╝

これは私のSQLクエリです:

$query = DB::table('tags_value')
         ->whereRaw(FIND_IN_SET('css', Tags))
         ->get();

しかし、それは機能していません。

この問題の解決を手伝ってください。前もって感謝します。

12
Ravi Kadia

引用符を使用してFIND_IN_SET()の呼び出しをエスケープする必要があります。

$query = DB::table('tags_value')
         ->whereRaw('FIND_IN_SET(css,Tags)')
         ->get();

FIND_IN_SETで検索する列をパラメーター化したい場合は、次のようなことを試すことができます。

$colname = 'css'
$query = DB::table('tags_value')
         ->whereRaw('FIND_IN_SET(?,Tags)', [$colname])
         ->get();
13
Tim Biegeleisen

これを試して :

->whereRaw("FIND_IN_SET('css',tags)")
4
Mr. Engineer