【问题标题】:laravel mysql how to search a string to see if a value is presentlaravel mysql如何搜索字符串以查看值是否存在
【发布时间】:2020-08-21 20:04:10
【问题描述】:

我正在使用 mysql 来存储一些项目。 在 mysql 数据库中,每个项目都有一个名为“关键字”的列,它是一个字符串。 数据看起来像这样...... 反应,nodejs,mysql,html

我想搜索一个字符串(即 php、react、mysql 等)以查看它是否包含在每一行的“关键字”列中。 我试过使用 where 和 where in 但我无法让它工作。 如果关键字中只有一个值,我可以找到工作地点。

来自我的控制器的示例

    public function php()
    {
        $projects = Projects::where('keywords','like',"php")->get();
        // dump($projects);
        return view('projects.php', ['projects' => $projects]);
    }

我如何使用 whereIn 的示例

    public function react()
    {
        $projects = Projects::whereIn('keywords','react')->get();
        return view('projects.react', ['projects' => $projects]);
    }

当我将 where 或 whereIn 与多个关键字一起使用时,我得到一个空数组。当我只用一个关键字使用 where 时(例如,我删除了字符串列中除一个之外的所有关键字),它工作得很好。

但我想在每列中有多个关键字,因为每个项目将在多个页面中使用。

再次感谢大家!堆栈溢出就是炸弹!!!

【问题讨论】:

    标签: php mysql laravel where-clause


    【解决方案1】:

    1-Column 有多个关键字

    如果您将所有关键字放在一列中,您应该像使用 % 一样使用

    $projects = Projects::where('keywords','like',"%php%")->get();
    

    如果您想一次搜索多个关键字:

    $projects = Projects::where('keywords','like',"%php%")
    ->orWhere('keywords','like',"%react%")->get();
    

    2-Column 有一个关键字

    如果你想在列中搜索一个关键字,你可以使用

    $projects = Projects::where('keywords',"php")->get();
    

    如果要在列中搜索多个关键字,可以使用

    $projects = Projects::whereIn('keywords',['php','react'])->get();
    

    【讨论】:

      猜你喜欢
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 2021-07-29
      相关资源
      最近更新 更多