0

次のクエリがあります。

SELECT * FROM products WHERE is_active = 1 AND MATCH (full_text) AGAINST ('М 1050' IN BOOLEAN MODE)

このクエリは 2 つのレコードを返します。両方の full_index 列の内容は次のとおりです。

; 013 001 106 ; Ъглошлайф SPARKY M 1050 HD ; 1050W,10000об.,φ125mm; スパーキー; 69 ; ; 040 070 1050 ; Вложка дванадесетограм удължена ; 1/4" 5mm FORSE /5295005/ ; フォース ; 77 ;

しかし、最初の行だけが必要で、2 番目の行は必要ありません。どうしたの?

4

3 に答える 3

1

http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.htmlに基づく

注: この機能を実装する際、MySQL は暗黙のブール論理と呼ばれることがあるものを使用します。

プラス (+) は AND を表します

マイナス (-) は NOT を表します

[演算子なし] は OR を意味します

したがって、基本的には OR を行っています。両方の用語が必要な場合は + をそのまま使用します

SELECT * FROM products WHERE is_active = 1 AND MATCH (full_text) AGAINST ('+М +1050' IN BOOLEAN MODE)
于 2014-09-18T11:11:38.297 に答える