
大家都知道,在 SQL 语句中,可以使用 LIKE 进行模糊查询,
而且大家可能都知道,使用 LIKE 进行模糊查询,要用 % 符号,
如果 % 在两边,比如 %abc%,表示是全模糊查询,查询包含 “abc” 的所有字符串;
如果 % 在左边,比如 %abc,表示是查询所有以 “abc” 结尾的字符串;
如果 % 在右边,比如 abc%,表示是查询所有以 “abc” 开头的字符串;
其实这个 % 就叫做占位符。
可能大家不知道的是,LIKE 语句的占位符除了 % 占位符之外,还有 _ 占位符。
_ 占位符表示单个字符,例如:
SELECT * FROM table_name WHERE column_name LIKE 'A_';
表示查询任意以 “A” 开头且后面有一个字符的字符串,比如 “AB”、“AC” 等。
如果事先知道要查询的字符的长度和其中某些字符,使用 _ 占位符性能更高。
_ 占位符还可以跟 % 占位符,查询时更加灵活,比如:
SELECT * FROM table_name WHERE column_name LIKE '_a%';
表示查询第二个字符为 “a” 的所有字符串。
相比之下,_ 占位符减少了匹配的候选项数量,查询精确度更高,在大数据集上,这样的细化可能会比 % 占位符 更加高效。
LIKE 模糊查询是一个比较耗性能的行为,特别是以 % 开头的模式,理解这些占位符可以帮助我们更有效地构造查询并进行字符串匹配,提高程序性能。
往期精彩
我是老杨,一个执着于编程乐趣、至今奋斗在一线的 10年+ 资深研发老鸟,是软件项目管理师,也是快乐的程序猿,持续免费分享全栈实用编程技巧、项目管理经验和职场成长心得。欢迎关注老杨的公众号,相互交流,共同进步!
248

被折叠的 条评论
为什么被折叠?



