在 Laravel 中找到?例子

2021-12-18 00:00:00 php mysql laravel laravel-5.1

我是 Laravel 的新手.我的查询是我需要从逗号分隔的字段中找出值.

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

这是我的桌子:

tags_value

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

这是我的 SQL 查询:

This is my SQL query:

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

但它不起作用.

请帮我解决这个问题.提前致谢.

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

推荐答案

您需要使用引号转义对 FIND_IN_SET() 的调用:

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

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

如果你想参数化你在FIND_IN_SET中搜索的列,那么你可以尝试这样的事情:

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();

相关文章