我需要在兩個表和我進行的查詢選擇一個單詞(關鍵字搜索)的任何事件是這樣的:MySQL查詢LIKE
SELECT t1.fname, t1.lname, t2.* FROM t1 , t2
WHERE t2.title LIKE "%test%"
OR t2.desc LIKE "%test%"
OR t2.inc LIKE "%test%"
OR t1.fname LIKE "%test%"
OR t1.lname LIKE "%test%"
AND t1.c_id = t2.c_id;
,因爲在數據庫中的大量數據,這種特殊的搜索(與'測試'關鍵字)需要幾分鐘,我想知道如何優化這一點。 我試着用左連接,但它似乎我做錯了 - 因爲結果幾乎延期,但它查詢執行得非常快。
它是這樣的:
SELECT * FROM t2 AS a
LEFT JOIN t1 AS b ON a.c_id = b.c_id
WHERE a.desc LIKE '%test%'
OR a.title LIKE '%test%'
OR a.inc LIKE '%test%'
OR b.fname LIKE '%test%'
OR b.lname LIKE '%test%';
任何幫助,將不勝感激...謝謝。
Whach數據庫引擎使用的是? –
MyIsam ...表之前建立,我正在修復錯誤 –
如果您有MyISAM表,那麼您可以使用MATCH..AGAINST關鍵字搜索多列中的字符串。檢查我的答案,它會給你如何使用MATCH..AGAINST在查詢 –