LIKE 关键字会使用 SQLite 和/或 MySQL 中的索引吗?
我会理解通配符匹配可能不会使用索引,但是以比较开头的情况如何?
最佳答案
这取决于:
WHERE field1 LIKE 'test' << can use index
WHERE field1 LIKE 'test%' << can also use index
WHERE field1 LIKE '%test' << cannot use index
WHERE field1 LIKE '_test' << cannot use index
只要通配符在开头,就不能使用索引。如果您在通配符之前有固定数据,则可以使用索引。
一些数据库如 PostgreSQL 有允许在所有情况下使用索引的技巧,但 MySQL 和 SQLite 没有。
关于mysql - SQLite 中的 LIKE(甚至 MysQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646209/