以下は私が立ち往生しているSQLの例です。「iphone4s」という名前の製品は返されません。他に10個の結果が返されます。どんな助けでも大いに感謝します
SELECT * FROM products
WHERE match(desc) against('+iphone +4s' IN BOOLEAN MODE) LIMIT 10";
結果:「iphone」と「4s」という単語が含まれています
SELECT * FROM products
WHERE match(desc) against('+iphone 4s' IN BOOLEAN MODE) LIMIT 10";
結果:「iphone」という単語が含まれますが、「4s」も含まれている場合は行のランクが高くなります
SELECT * FROM products
WHERE match(desc) against('iphone 4s' IN BOOLEAN MODE) LIMIT 10";
結果:「iphone」または「4s」という単語が含まれます
私が検索したいのは「iphone4s」ですが、「iphoneは良いですが、4s ...」、「新しいiphone 5が公開されました...」、...などの他の結果が表示されます。
誰かが私がそれを解決するのを手伝ってくれる?ありがとう。
正確なフレーズに一致させるには、一致するフレーズを二重引用符で囲みます。
SELECT *
FROM products
WHERE MATCH(desc)
AGAINST('"iphone 4s"' IN BOOLEAN MODE)
LIMIT 10
[〜#〜] regexp [〜#〜] を使用します
SELECT * FROM products
WHERE desc REGEXP 'iphone[[. .]]*4s'
LIMIT 10;