php - 通过 REGEXP 在 mysql 中搜索时遇到问题

标签 php mysql regex

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

我的 php 查询是

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

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

最佳答案

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

对于此类查询的重要子集,您可以在该类别上使用FULLTEXT索引,如下所示:

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

这表示两个“单词”都会出现,且不限制顺序或接近程度。

关于php - 通过 REGEXP 在 mysql 中搜索时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42415162/

相关文章:

python - 如何使用正则表达式匹配段落

javascript - 在 javascript 中用于文件路径验证的正则表达式

php - 循环遍历二维 session 数组购物车php

mysql - 使用 Node 和 Express 将表中的多个选定 ID 发送到路由中

python - 如何通过python从句子中提取数字

php - mysql 多数据返回

php - 我们可以合并两个查询,将结果返回为行

PHP:处理从 Perl 发送的 POST 请求

php - 如何在发布请求后保持选择表单项?

mysql - 在存储过程外使用 if 语句