在拉拉维尔找到设置?例

2022-08-30 22:51:37

我是拉拉维尔的新手。我的查询是我需要从逗号分隔的字段中找出值。

这是我的表格:

tags_value

编号 标签
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();

但它不起作用。

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


答案 1

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

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

但是,除非它是固定值,否则应始终参数化在 中搜索的列:FIND_IN_SET

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

答案 2

试试这个 :

->whereRaw("FIND_IN_SET('css',tags)")

推荐