mysql - SQLite 中的 LIKE(甚至 MysQL)

标签 mysql sqlite sql-like

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/

相关文章:

mysql - 如何使用mysql unix_timestamp()作为自动递增的起点?

java - 连接数据库时出现 SQlite 错误

sqlite - 如何在Mac OS X Lion中使用XULRunner在Firefox之外运行SQLite Manager?

sql - PostgreSQL:所有文本列中的 ILIKE

MySQL LIKE 运算符的行为类似于 = 运算符

mysql - 如何使用 cloud9 在 ruby​​ on rails 中从 sql 文件导入 mysql 数据库?

php - 如何删除 PHP 字符串中的第一个逗号?

mysql - 加入不要覆盖结果 mysql

c# - 与 SQLite/SubSonic(或任何其他数据库)一起使用时,避免在项目中使用 App.config 文件

sql - 如何避免使用 LIKE 运算符进行全表扫描