2012-07-25 204 views
0

我想獲得查詢命中索引。獲取查詢命中索引 - 搜索字符串的前綴

的情況是這樣的:

給出一個字符串 - 找到的所有行列「海峽」是一個字串該字符串

我已經試過類似:

SELECT str FROM tbl WHERE 'fullstring' LIKE CONCAT(str, '%'); 

但是,這並不符合我在使用EXPLAIN EXTENDED檢查查詢時創建的索引。

在最糟糕的情況下,我可以通過使用嵌套集重新構建數據庫來解決這個問題 - 但我真的很喜歡不必沿着那條路線走下去。

+0

你會發布解釋計劃嗎? – kirbs 2012-07-25 12:11:13

回答

0

它應該使用索引。如果你的MySQL優化器沒有選擇合適的索引,那麼你可以試試FORCE KEY嘗試:

SELECT str FROM tbl FORCE KEY(index_name) WHERE 'fullstring' LIKE CONCAT(str, '%');