2012-07-25 201 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, '%');