mysql与正则表达式多字匹配

时间:2013-03-07 12:37:59

标签: mysql sql

我想在mysql数据库中进行一项研究,其中包含几个单词加工词OR子词

例如,如果我搜索“ata”,我想获取“数据”和“数据库” 如果我搜索“ata”和“get”,我想获得“数据库正在获取”

目前我使用2次LIKE功能:

SELECT col FROM mytable WHERE col LIKE "%ata%"

然后

SELECT col FROM mytable WHERE col LIKE "%get%"

如果有效,但我认为有更有效的方法。

我试过了:

SELECT col FROM mytable WHERE MATCH (col) AGAINST (concat('%','ata get','%') IN BOOLEAN MODE)

但它不起作用。

如果有解决方案使用MACH AGAINST?

1 个答案:

答案 0 :(得分:1)

为什么不在原始查询中使用and

SELECT col
FROM mytable
WHERE col LIKE "%ata%" and col like col LIKE "%get%"

或者,如果你关心匹配的顺序,你可以将它们组合成一个表达式:

select col
from mytable
where col like '%ata%get%'