find in set in laravel ? example

2019-02-17 03:00发布

I am new in laravel. My query is i need to find out value from comma separated field.

Here is my table:

tags_value

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

This is my SQL query:

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

but it's not working.

Please help me to solve this problem. Thanks in advance.

2条回答
乱世女痞
2楼-- · 2019-02-17 03:42

You need to escape the call to FIND_IN_SET() using quotes:

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

If you want to parameterize the column for which you search in FIND_IN_SET, then you can try something like this:

$colname = 'css'
$query = DB::table('tags_value')
         ->whereRaw('FIND_IN_SET(?,Tags)', [$colname])
         ->get();
查看更多
姐就是有狂的资本
3楼-- · 2019-02-17 03:48

Try this :

->whereRaw("FIND_IN_SET('css',tags)")
查看更多
登录 后发表回答