0

我正在尝试获取查询以命中索引。

场景是这样的:

给定一个字符串 - 查找列“str”是该字符串的子字符串的所有行

我试过类似的东西:

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

但是 - 这不会命中我在使用 . 检查查询时创建的索引EXPLAIN EXTENDED

在最坏的情况下,我可以通过使用嵌套集稍微改造数据库来解决这个问题——但我真的很想不必走那条路。

4

1 回答 1

0

它应该使用索引。如果您的 MySQL 优化器没有选择正确的索引,那么您可以尝试FORCE KEY尝试:

SELECT str FROM tbl FORCE KEY(index_name) WHERE 'fullstring' LIKE CONCAT(str, '%');
于 2012-07-25T09:43:23.057 回答