问题描述
我是 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();