1

次のクエリは、期待どおりに機能していません。

SELECT DISTINCT * 
FROM mytable 
WHERE MATCH (StrNum, StrName, StrType, TownName, Zip) AGAINST ('elm') 
AND Color = 'RED' OR Color = 'WHITE' OR Color = 'BLUE'

これは私が期待するよりも多くの結果を返しています-それは私の結果を「elm」の結果に限定するものではありません。

最後の行(および色...)を削除すると、MATCH AGAINSTが正常に機能しており、実際には「elm」の行だけに制限されていることがわかります。

Colorのものをプルするためにサブクエリまたは何かを行う必要がありますか?適切な構文は本当に役に立ちます、ありがとう!

4

3 に答える 3

4

これはそのように書くことができますか

SELECT DISTINCT * FROM mytable 
WHERE MATCH (StrNum, StrName, StrType, TownName, Zip) AGAINST ('elm')
AND Color IN ('RED', 'WHITE', 'BLUE') 

お役に立てれば。

于 2010-08-03T13:43:12.253 に答える
0

かっこが役立つかもしれませんか?

SELECT DISTINCT * 
FROM mytable 
WHERE MATCH (StrNum, StrName, StrType, TownName, Zip) AGAINST ('elm') 
AND ( Color = 'RED' OR Color = 'WHITE' OR Color = 'BLUE' )
于 2010-08-03T13:39:47.197 に答える
0

MATCH AGAINSTを使用するには、検索される単語ごとに少なくとも4文字が必要であるため(デフォルトではとにかく)、「Elm」は無視されます。

于 2014-10-28T18:09:18.903 に答える