SQL 通配符

更新时间:2021-11-29 21:21

SQL 通配符用于搜索表中的数据。在 SQL 中,通配符可用于替代字符串中的任何其他字符,通配符与 SQL LIKE 操作符一起使用。


在 SQL 中,可使用以下通配符:
通配符描述
%替代 0 个或多个字符
_替代一个字符
[charlist]字符列中的任何单一字符
[^charlist]

[!charlist]
不在字符列中的任何单一字符


演示数据库
下面是选自 "lqwvje" 表的数据:
idnameurlsortcountry
1罗分明博客http://www.luofenming.com9中国
2淘宝
https://www.taobao.com5中国
3googlehttps://www.google.cm/11美国
495网络http://www.995w.com3中国
5Facebookhttps://www.facebook.com8美国

SQL % 通配符
下面的 SQL 语句选取 name 以 "罗分明" 开始的所有数据:
SELECT * 
FROM lqwvje
WHERE name LIKE '罗分明%';

相关 %通配符可以查看上一节 SQL LIKE 操作符


SQL _ 通配符
下面的 SQL 语句选取 name 以一个任意字符开始,然后是 "_分明博客" 的数据:
SELECT * FROM lqwvje
WHERE name LIKE '_分明博客';
执行输出结果

image.png


下面的 SQL 语句选取 name 以 "G" 开始,然后是一个任意字符,然后是 "o",然后是一个任意字符,然后是 "le" 的所有数据:
SELECT * FROM lqwvje
WHERE name LIKE 'g_o_le';
执行输出结果

image.png


SQL [charlist] 通配符
下面的 SQL 语句选取 name 以 "g"、"罗" 或 "9" 开始的所有数据:
SELECT * FROM lqwvje
WHERE name REGEXP '^[g罗9]';
执行输出结果
image.png


下面的 SQL 语句选取 name 以 A 到 H 字母开头的所有数据:
SELECT * FROM lqwvje
WHERE name REGEXP '^[A-H]';
执行输出结果(注意,A-H 不包含小写g)

image.png


下面的 SQL 语句选取 name 不以 A 到 H 字母开头的所有数据:
SELECT * FROM lqwvje
WHERE name REGEXP '^[^A-H]';
执行输出结果
image.png