在逗号分隔值字段Laravel 5.1中查找

时间:2017-01-04 07:28:28

标签: php mysql laravel laravel-5.1

我需要使用querybuilder检查mysql字段中的逗号分隔字符串中是否存在变量。

我这样做

 <?php 
      $parents = DB::table('categorie')>whereRaw('FIND_IN_SET("$categoria->id", parent)')->get();                            

但没有返回任何价值。

2 个答案:

答案 0 :(得分:5)

您不应该自己将变量放在查询中。改为使用绑定,这将确保您的参数被正确转义。

<?php 
    $parents = DB::table('categorie')->whereRaw('FIND_IN_SET(?, parent)', [$categoria->id])->get();

答案 1 :(得分:0)

您可以在查询后使用toSql()方法调试查询,该方法变为

DB::table('categorie')->whereRaw('FIND_IN_SET("$categoria->id", parent)')->toSql();

如果将$ categoria-&gt; id放入查询中,这将清除它。

  

我无法评论,因此将其作为答案发布。