SQL 通配符

通配符可用于替代字符串中的任何其他字符。

SQL 通配符

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。

SQL 通配符用于搜索表中的数据。

在 SQL 中,可使用以下通配符:

通配符描述
%替代 0 个或多个字符
_替代一个字符
[charlist]字符列中的任何单一字符
[^charlist]

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

通配符也可以组合使用!

下面是一些使用''和'_'通配符显示不同LIKE运算符的例子:

LIKE运算符描述
WHERE CustomerName LIKE 'a%'查找以“a”开头的任何值
WHERE CustomerName LIKE '%a'查找以"a"结尾的任何值
WHERE CustomerName LIKE '%or%'在任何位置查找任何具有“or”的值
WHERE CustomerName LIKE '_r%'在第二个位置查找任何具有“r”的值
WHERE CustomerName LIKE 'a_%_%'查找以“a”开头并且长度至少为3个字符的值
WHERE ContactName LIKE 'a%o'查找以“a”开始并以“o”结尾的任何值

演示数据库

在本教程中,主要是使用Mysql数据库,虽然和其他数据有一定的差异,不影响对SQL语法的讲解。

相应的脚本请查看上一篇文章:开始前准备环境


以下是 "member" 表中的数据:

member_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三xxx广东1
101110002112333李四xxx北京1
1012100031234567王五xxx广东1
101310004112335张飞xxx广东1
101410005112336关习xxx上海1
101510006112337关平xxx湖南1
101610007112338小李xxx广东1
101710008112339韩飞xxx深圳1
101810009112310刘备xxx三国1
101910010112312吴越xxx广西1
102010011112312韩信xxx南京1
102110012112331张包xxx广东1

使用 SQL % 通配符

以下SQL语句选择所有会员nick_name 以“张”开头:

示例语句:

SELECT * FROM member  
WHERE nick_name LIKE '张%';

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三www.jhelp.net广东1
101310004112335张飞www.jhelp.net广东1
102110012112331张包www.jhelp.net广东1

以下SQL语句选择nick_name中包含“jhelp”模式的所有会员:

示例语句:

SELECT * FROM member  
WHERE nick_name LIKE '%jhelp%';

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101210003abc123www.jhelp.netwww.jhelp.net广东1

使用 SQL _ 通配符

以下SQL语句选择nick_name以任意字符开头,然后是“net”的所有会员:

实例

SELECT * FROM member  
WHERE nick_name LIKE '_net';

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101210003abc123www.jhelp.netwww.jhelp.net广东1


以下SQL语句选择member_code开头为“1”,后面是任意字符,后面是“0”,后面是任意字符,后面是“9”的所有会员:

示例语句:

SELECT * FROM member  
WHERE member_code LIKE '1_0_9';

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101810009112310刘备www.jhelp.net三国1

使用 SQL [charlist] 通配符

MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。

以下SQL语句选择所有会员nick_name以"李"、"刘"或"小"开头:

示例语句:

SELECT * FROM member  
WHERE nick_name REGEXP '^[李刘小]';


查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101110002112333李四www.jhelp.net北京1
101610007112338小李www.jhelp.net广东1
101810009112310刘备www.jhelp.net三国1


以下SQL语句选择“nick_name”以“u”、“y”或“z”开头的所有会员:

示例语句:

SELECT * FROM member  
WHERE nick_name REGEXP '^[u-y]';

查询语句:

member_idmember_codepasswordnick_nameremarkslocationstatus
101210003abc123www.jhelp.netwww.jhelp.net广东1


以下SQL语句选择所有会员nick_name不以"李"、"小"或"刘"开头:

示例语句:

SELECT * FROM member  
WHERE nick_name REGEXP '^[^李小刘]';

查询结果:

member_idmember_codepasswordnick_nameremarkslocationstatus
101010001112331张三www.jhelp.net广东1
101210003abc123www.jhelp.netwww.jhelp.net广东1
101310004112335张飞www.jhelp.net广东1
101410005112336关习www.jhelp.net上海1
101510006112337关平www.jhelp.net湖南1
101710008112339韩飞www.jhelp.net深圳1
101910010112312吴越www.jhelp.net广西1
102010011112312韩信www.jhelp.net南京1
102110012112331张包www.jhelp.net广东1
1022100110112355新添加www.jhelp.net北京1
1023100111112355333新添加2www.jhelp.net北京
腾讯云推出云产品限时特惠抢购活动:2C2G云服务器7.9元/月起
本文链接:https://www.jhelp.net/p/Hnhg7pgnFzWyVxfJ (转载请保留)。
关注下面的标签,发现更多相似文章