让MySQL LIKE返回全字匹配

时间:2014-12-08 21:53:26

标签: mysql regex

我不希望在LIKE匹配部分单词的地方返回行。我在空格上拆分字符串,然后生成一个查找匹配项的查询,但它返回部分单词的匹配项。这是一个例子

SELECT ID from VideoGames WHERE Title Like "%GI%" AND Title Like "%JOE%"

返回一个匹配,其中title =“Yu-Gi-Oh!Chaos的力量:Joey the Passion”。

我知道只匹配完整的单词不会完全解决问题,但它会极大地提高准确性。我该怎么做才能回报我想要的东西而不是这个。

1 个答案:

答案 0 :(得分:1)

您可以使用RLIKE LIKE的正则表达式版本,以便在匹配时获得更大的灵活性。

SELECT ID from VideoGames 
    WHERE Title RLIKE "[[:<:]]GI[[:>:]]" AND Title RLIKE "[[:<:]]JOE[[:>:]]"

[[:<:]][[:>:]]标记分别是标记开头和单词的字边界。您可以构建单个正则表达式而不是AND,但我已将此匹配作为原始问题。