注意sql语句中的通配符,别掉坑里面!

简介:
现象:

有一个表 action_conf,数据如下:table

如果想获取以exp_site_10_开头的en_name的记录,sql语句该如何写?
so easy!


select en_name from action_conf where en_name like 'exp_site_10_%'

很自信的在idb中执行了这条sql,就会发现结果并不是所预期的。
你会发现,执行上面的sql会把所有以 exp_site_10开头的记录都列出来了。

原因:
其实,这都是sql中的通配符在作怪。在sql中,下划线_是一个通配符,能匹配任何单一字符。
既然直到原因,修改sql就很容易了。正确的sql应该是:


select en_name from action_conf where en_name like 'exp\_site\_10\_%'

在通配符前面增加转移字符后,mysql就会把通配符视为普通字符。

进阶:
通配符整理:
通配符 说明
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或[!charlist] 不在字符列中的任何单一字符



目录
相关文章
|
9月前
|
SQL Oracle 关系型数据库
SQL 通配符:用于模糊搜索和匹配的 SQL 关键技巧
通配符字符用于替代字符串中的一个或多个字符。通配符字符与LIKE运算符一起使用。LIKE运算符用于在WHERE子句中搜索列中的指定模式。
117 0
|
SQL 关系型数据库 MySQL
13SQL - SQL通配符
13SQL - SQL通配符
63 0
|
1月前
|
SQL Java 数据库连接
如何在 Java 代码中使用 JSqlParser 解析复杂的 SQL 语句?
大家好,我是 V 哥。JSqlParser 是一个用于解析 SQL 语句的 Java 库,可将 SQL 解析为 Java 对象树,支持多种 SQL 类型(如 `SELECT`、`INSERT` 等)。它适用于 SQL 分析、修改、生成和验证等场景。通过 Maven 或 Gradle 安装后,可以方便地在 Java 代码中使用。
255 11
|
3月前
|
SQL
SQL 中,通配符
【11月更文挑战第13天】
87 5
|
9月前
|
SQL 数据库
SQL 通配符
SQL 通配符
49 0
|
4月前
|
SQL 安全 关系型数据库
SQL语句中表名通配符的使用技巧与方法
在SQL查询中,通配符通常用于匹配字符串数据,如列值中的部分字符
|
7月前
|
SQL
使用 SQL [charlist] 通配符
【7月更文挑战第14天】使用 SQL [charlist] 通配符。
64 9
|
7月前
|
SQL
使用 SQL _ 通配符
【7月更文挑战第14天】使用 SQL _ 通配符。
53 8
|
7月前
|
SQL
使用 SQL % 通配符
【7月更文挑战第14天】使用 SQL % 通配符。
56 7
|
7月前
|
SQL 数据库
SQL 通配符
【7月更文挑战第14天】SQL 通配符。
68 7