聊聊 SQL 语句中的占位符

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 大家都知道,在 SQL 语句中,可以使用 LIKE 进行模糊查询,但可能大家不知道的是,LIKE 语句的占位符除了 % 占位符之外,还有 _ 占位符,理解这些占位符可以帮助我们更有效地构造查询并进行字符串匹配,提高程序性能

Coding-78.png

大家都知道,在 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 模糊查询是一个比较耗性能的行为,特别是以 % 开头的模式,理解这些占位符可以帮助我们更有效地构造查询并进行字符串匹配,提高程序性能。

往期精彩

  1. 闲话 .NET(7):.NET Core 能淘汰 .NET FrameWork 吗?
  2. 常用的 4 种 ORM 框架(EF Core,SqlSugar,FreeSql,Dapper)对比总结

我是老杨,一个执着于编程乐趣、至今奋斗在一线的 10年+ 资深研发老鸟,是软件项目管理师,也是快乐的程序猿,持续免费分享全栈实用编程技巧、项目管理经验和职场成长心得。欢迎关注老杨的公众号(名称:代码掌控者),获取更多干货!

相关文章
|
SQL 存储 缓存
SQL注入、占位符拼接符
SQL注入、占位符拼接符
464 0
|
SQL PHP 数据库
Python:正则re.sub实现SQL命名占位符替换
Python:正则re.sub实现SQL命名占位符替换
261 0
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
103 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
59 6
|
4月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
329 1
|
3月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
444 0
|
4月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
287 3
|
4月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
下一篇
无影云桌面