【问题标题】:How to use 'where' on column with comma separated values in laravel如何在laravel中使用逗号分隔值的列上使用'where'
【发布时间】:2016-02-03 06:41:47
【问题描述】:

我正在使用带有 laravel 框架的 php。我想从包含用户 ID 的表中获取行。这里的问题是用户 id 是整数值,并且 column(author) 包含多个以逗号分隔的整数值。这是一个例子。

DB::table('stories')->where('author','4')->get();

作者列具有值:第 1 行:2,4,5 |第 2 行:1,3,14 |第 3 行:4,5 我会得到第 1 行和第 3 行。所以,请帮助我得到正确的行。

【问题讨论】:

    标签: php mysql regex laravel


    【解决方案1】:

    你可以像 as 一样使用whereRaw

    DB::table('stories')->whereRaw("find_in_set('4',author)")->get();
    

    【讨论】:

      【解决方案2】:

      首先使用

      将您的 string 转换为 array
      $row = "2,4,5";
      $idsArr = explode(',',$row);  
      DB::table('stories')->whereIn('author',$idsArr)->get();
      

      【讨论】:

      • 如果可以简单地使用find_in_set,为什么要将字符串转换为数组
      • @uchicha 你是对的..但是不同的人有不同的头脑,不同的头脑有不同的逻辑方式...... :)
      猜你喜欢
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      • 2019-01-11
      • 2019-12-02
      • 2017-04-21
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多