一、背景
最近在看《MySQL 反模式》,看到了 LIKE
关键字的一些用法,在这里总结一下。
二、注意点
- LIKE ‘XXX%’:这样会用到索引。就和查字典一样,文字按拼音排序,查找以“A”开头的单词是可以用到索引的。
- LIKE ‘%XXX’:不会用到索引。
- 如果一定要用 “%XXX” 的模式:当需要搜索 email 列中以 .com 结尾的字符串而希望走索引时候,可以考虑数据库存储一个反向的内容reverse_email:
SELECT * FROM `table` WHERE `reverse_email` LIKE REVERSE('%.com');
- 在《MySQL 反模式》这本书里看到一个用法:
SELECT * FROM Comments AS c WHERE '1/4/6/7/' LIKE c.path || '%';
反过来使用 LIKE 关键字,这句查询会匹配到 path 为“1/4/6/%”、“1/4/%”以及“1/%”的节点。