在搜索数据库中的数据时,你可以使用SQL通配符,sql通配符可以替代一个或多个字符。
注意!!:sql通配符必须与like运算符一起使用!!!
在 SQL 中,可使用以下通配符:
通配符 | 描述 |
---|---|
% | 替代一个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] 或者 [!charlist] | 不在字符列中的任何单一字符 |
例子:
Persons 表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | 小南 | 张 | 地球 | 新新人社区 |
2 | 小明 | 王 | 火星 | 达人人社区 |
3 | 小强 | 李 | 太阳 | 新新人社区 |
4 | Carter | Thomas | Changan Street | Beijing |
使用%通配符
现在,我们希望从上边persons表中选取以“地”开头的address里的人:
select * from persons where address like '地%';
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | 小南 | 张 | 地球 | 新新人社区 |
现在,我们希望从上边persons表中选取city里包含“人人”的城市里的人
select * from persons where city like '%人人%';
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
2 | 小明 | 王 | 火星 | 达人人社区 |
使用 _ 通配符
现在,我们希望从上面的 "Persons" 表中选取名字的第二个字符之后是 "强" 的人:
SELECT * FROM Persons WHERE LastName LIKE '_强';
接下来,我们希望从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er":
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'结果集:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
4 | Carter | Thomas | Changan Street | Beijing |
个人感觉不常用!!
例子2:
Users 表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
使用 [charlist] 通配符
例子 1
现在,我们希望从上面的 "Users" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Users WHERE City LIKE '[ALN]%'
结果集:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
例子 2
现在,我们希望从上面的 "Users" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Users
WHERE City LIKE '[!ALN]%'
结果集:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
3 | Carter | Thomas | Changan Street | Beijing |