数据库
首页 > 数据库> > 布尔匹配/反对中MySQL REGEXP的使用

布尔匹配/反对中MySQL REGEXP的使用

作者:互联网

我有以下MySQL查询:

SELECT title, description 
FROM some_table 
WHERE MATCH (title,description) AGAINST ('+denver (REGEXP "[[:<:]]colorado[s]*[[:>:]]")' IN BOOLEAN MODE);

“ regexp”在这里寻找“完整单词”科罗拉多(带有或不带有“ s”结尾).

我实际上只选择具有(“ denver”)和(“ colorado”或“ colorados”)的那些行.但是我不能为REGEXP加上一个“”.我尝试过但得到0个结果,尽管表中有符合要求的行.

关于如何使用REGEXP进行“”工作的任何想法?
我是从PHP脚本中构造此对象的,其中“ denver”和“ colorado”是用于构造select语句的变量的值.

我的PHP / MySQL脚本看起来像这样:

SELECT title, description 
FROM some_table 
WHERE MATCH (title,description) AGAINST ('+$var1 (REGEXP "[[:<:]]$var2[s]*[[:>:]]")' IN BOOLEAN MODE);

解决方法:

我认为不可能将正则表达式和MATCH …结合使用.您需要使用语法来编写布尔表达式.

> Boolean Full-Text Searches

尝试这样的事情:

SELECT title, description
FROM some_table
WHERE MATCH (title,description)
      AGAINST ('+denver +(colorado colorados)' IN BOOLEAN MODE);

标签:against,mysql,regex,match
来源: https://codeday.me/bug/20191201/2079721.html