代码之家  ›  专栏  ›  技术社区  ›  Ahmad Badpey

选择包含至少一个多词句子(MySql)的列的行

  •  -4
  • Ahmad Badpey  · 技术社区  · 7 年前

    Brands title 可以包含一些单词的句子的列。

    现在我们有一个这样的句子 堆栈 溢流 网站

    我知道有 LIKE

    此外,我更喜欢使用一个查询来获得我想要的结果。

    4 回复  |  直到 7 年前
        1
  •  2
  •   Sreejith BS    7 年前

    explode 函数,使其成为 . 这个 whereIn 试试这个:

    $querySentence = "stack overflow website";
    
    //Using explode function, make it an array of WORDS
    $wordsArray = explode(" ", $querySentence);
    $dbQuery = Brands::whereIn('title', $wordsArray)->get();
    

    更多关于 Laravel whereIn

        2
  •  1
  •   Adil Amanat    7 年前

    此查询可能会有所帮助

        3
  •  1
  •   Erik Baars    7 年前

    您可以通过执行多个like语句来实现这一点。像这样:

    SELECT * FROM TABLE WHERE info LIKE '%stack%' OR info LIKE '%overflow%' OR info LIKE '%website%';
    

    请注意,这在大型数据结构上不会表现得很好。如果您有一个大型数据库,我建议您改用ElasticSearch之类的工具,但至少要仔细查看表的索引。

        4
  •  0
  •   Blues Clues    7 年前

    % 使用时 LIKE

    Select * from brands where title LIKE '%stack%' OR title LIKE '%overflow%' OR title LIKE '%website%'

    它选择它拥有的字母。例如,如果你只是搜索 sta公司 ,因为它的字母是 sta公司 内部 堆栈 .

    更新:

    Brands::where('title', 'LIKE', '%stack%')->orWhere('title', 'LIKE', '%overflow%')->orWhere('title', 'LIKE', '%website%');