我想根據搜索關鍵字的相關性來搜索表中的記錄。如何在mysql中按相關順序獲取搜索結果?
我的查詢是:
SELECT *
FROM downloads
WHERE (
(name LIKE '%Micky Mobile%')
OR (name LIKE '%Micky%' OR name LIKE '%Mobile%')
OR (name LIKE '%Micky%')
OR (name LIKE '%Mobile%')
) AND app='1'
這工作得很好,但問題是:
我從這個查詢想要的是有名字「你好米奇手機T」在第一名的行。
排名第2位的「Hello Micky T Mobile」。
行有「你好米奇T」在第3位。
在第4位有「Hello Mobile T」的行。
但上面的查詢通過id(自動遞增字段)給出ASC順序的結果。
聯盟解決了我的問題,但它需要更多的時間,它應該(我想)。 必須有其他方式。
更確切地說,它不通過ID返回ASC順序的結果,但而是以_default_順序返回結果,在MySQL中,我相信這代表了插入順序。在很多情況下,這將與auto-inc id的ASC訂單相同,但這是_not_保證的,不應該依賴。我提到這只是一個附註,因爲我知道這不是你問題的真正意義。 – Flimzy
謝謝你指出。在我的情況下,我正在通過ID獲得ASC順序的結果。 – Sunny