SQL 通配符查询 REGEXP
sql中通配符通常与like语句一起使用或者 与 REGEXP 运算符来操作正则表达式一起使用。
sql中的通配符
通配符 | 描述 |
---|---|
% | 替代 0 个或多个字符 |
_ | 替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist]或[!charlist] | 不在字符列中的任何单一字符 |
实例数据
+----+---------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+---------------+---------------------------+-------+---------+
| 1 | 百度 | https://www.baidu.cm/ | 1 | CN |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 微博 | http://weibo.com/ | 20 | CN |
| 4 | Facebook | https://www.facebook.com/ | 3 | USA |
| 5 | stackoverflow | http://stackoverflow.com/ | 0 | IND |
+----+---------------+---------------------------+-------+---------+
%通配符
查询url中以'https'开头的数据
sql > SELECT * FROM website WHERE url LIKE 'https%';
+----+---------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+---------------+---------------------------+-------+---------+
| 1 | 百度 | https://www.baidu.cm/ | 1 | CN |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 4 | Facebook | https://www.facebook.com/ | 3 | USA |
+----+---------------+---------------------------+-------+---------+
_ 通配符
SQL 语句选取 name 以一个任意字符开始,然后是 "book" 的所有数据:
SELECT * FROM website WHERE name LIKE '_book';
+----+---------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+---------------+---------------------------+-------+---------+
| 4 | Facebook | https://www.facebook.com/ | 3 | USA |
+----+---------------+---------------------------+-------+---------+
[charlist] 通配符
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
下面的 SQL 语句选取 name 以 "F" 或 "s" 开始的所有数据:
SELECT * FROM website WHERE name REGEXP '^[Fs]';
+----+---------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+---------------+---------------------------+-------+---------+
| 4 | Facebook | https://www.facebook.com/ | 3 | USA |
| 5 | stackoverflow | http://stackoverflow.com/ | 0 | IND |
+----+---------------+---------------------------+-------+---------+
下面的 SQL 语句选取 name 以 A 到 H 字母开头的数据:
SELECT * FROM website WHERE name REGEXP '^[A-H]';
+----+---------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+---------------+---------------------------+-------+---------+
| 4 | Facebook | https://www.facebook.com/ | 3 | USA |
+----+---------------+---------------------------+-------+---------+
备注:本文连接地址 https://www.catroom.com.cn/article/sql_regexp , 转载请注明出处