【问题标题】:Having trouble while searching in mysql via REGEXP通过 REGEXP 在 mysql 中搜索时遇到问题
【发布时间】:2017-02-24 07:41:34
【问题描述】:

我正在我的项目中实现搜索,所以我必须搜索任何顺序的数据,所以我关注this question。但我的查询不起作用

我的 php 查询是

 $cat="(?=.*Women)(?=.*Rings)";
 $sql="select * from tbl_jewellery where categories RLike '$cat';";

当我将正则表达式更改为 Women.*Ring|Ring.*Women 它工作正常,但(?=.*Women)(?=.*Rings) 方法很简单,只需添加它们即可用于多个单词。

【问题讨论】:

    标签: php mysql regex


    【解决方案1】:

    MySQL 没有在 REGEXP 中实现(? 语法。我认为 MariaDB 10.0.5 可以。

    对于此类查询的重要子集,您可以在 categories 上使用 FULLTEXT 索引:

    MATCH(categories)
        AGAINST('+women +rings' IN BOOLEAN MODE)
    

    也就是说,两个“词”都会出现,没有顺序或接近的限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多