0
例如,我想在標題/說明中搜索「Sprite」,「Pepsi」或「Coke」的所有條目,並輸出最後3個結果。用SQL一次搜索多個事物的最有效方法?
------------------------------------------------
| ID | Title | Description |
------------------------------------------------
| 1 | text text SPRITE text | text PEPSI xxx |
| 2 | text text text text | text text text |
| 3 | text text SPRITE text | text COKE xxxx |
| 4 | text text text text | text text text |
| 5 | text PEPSI text text | text COKE xxxx |
| 6 | text COKE text text | text COKE xxxx |
| 7 | text text text text | text text text |
| 8 | text text text text | text text text |
------------------------------------------------
這是最高效的查詢嗎?
SELECT *
FROM `table`
WHERE title LIKE '%Sprite%' OR description LIKE '%Sprite%'
OR title LIKE '%Pepsi%' OR description LIKE '%Pepsi%'
OR title LIKE '%Coke%' OR description LIKE '%Coke%'
ORDER BY 'id' DESC
LIMIT 3;
或者有沒有辦法與MATCH AGAINST做到這一點? (我不能找到一種方法)..
輸出示例:
------------------------------------------------
| 6 | text COKE text text | text COKE xxxx |
| 5 | text PEPSI text text | text COKE xxxx |
| 3 | text text SPRITE text | text COKE xxxx |
------------------------------------------------
您最好的選擇是使用全文搜索服務。例如,獅身人面像。 – 2012-03-13 16:22:22
如果你有全文索引,你應該可以用MATCH(title,description)AGAINST('sprite')等來做。 – 2012-03-13 16:24:36
如何一次匹配多個搜索字詞? – supercoolville 2012-03-13 17:24:09