以下查询无法按预期方式运行:
SELECT DISTINCT *
FROM mytable
WHERE MATCH (StrNum, StrName, StrType, TownName, Zip) AGAINST ('elm')
AND Color = 'RED' OR Color = 'WHITE' OR Color = 'BLUE'
这会带来比我预期更多的结果 - 它不会将我的结果限制在'elm'上。
如果我删除最后一行(AND Color ...),我可以看到我的MATCH AGAINST工作得很好,确实只限于那些'elm'。
我是否需要做一个子查询或什么来拉动颜色的东西?正确的语法将非常有用,谢谢!
答案 0 :(得分:4)
这可以这样写吗
SELECT DISTINCT * FROM mytable
WHERE MATCH (StrNum, StrName, StrType, TownName, Zip) AGAINST ('elm')
AND Color IN ('RED', 'WHITE', 'BLUE')
希望这有帮助。
答案 1 :(得分:0)
也许括号会有帮助吗?
SELECT DISTINCT *
FROM mytable
WHERE MATCH (StrNum, StrName, StrType, TownName, Zip) AGAINST ('elm')
AND ( Color = 'RED' OR Color = 'WHITE' OR Color = 'BLUE' )
答案 2 :(得分:0)
使用MATCH AGAINST对于搜索的每个单词至少需要4个字符(默认情况下仍然如此),因此“Elm”将被忽略。