大家都知道,在 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年+ 资深研发老鸟,是软件项目管理师,也是快乐的程序猿,持续免费分享全栈实用编程技巧、项目管理经验和职场成长心得。欢迎关注老杨的公众号(名称:代码掌控者),获取更多干货!