在 SQL 中,可使用以下通配符:
通配符 | 描述 |
---|---|
% | 替代一個或多個字符 |
_ | 僅替代一個字符 |
[charlist] | 字符列中的任何單一字符 |
[^charlist] 或者 [!charlist] |
不在字符列中的任何單一字符 |
原始的表 (用在例子中的):
Persons 表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Bei_jing |
1.使用 % 通配符
例子 (1)
現在,我們希望從上面的 "Persons" 表中選取居住在以 "Ne" 開始的城市里的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM Person WHERE City LIKE 'Ne%'
例子 (2)
我們希望從 "Persons" 表中選取居住在包含 "lond" 的城市里的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM Persons WHERE City LIKE '%lond%'
2.使用 _ 通配符
例子 (1)
現在,我們希望從上面的 "Persons" 表中選取名字的第一個字符之后是 "eorge" 的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM Persons WHERE FisrstName LIKE '_eorge'
例子 (2)
接下來,我們希望從 "Persons" 表中選取的這條記錄的姓氏以 "C" 開頭,然后是一個任意字符,然后是 "r",然后是任意字符,然后是 "er":
我們可以使用下面的 SELECT 語句:
SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'
例子 (3)
現在我們看到第三個人的地址北京中有字符_, 我們希望從 "Persons" 表中選取第4個字符是_的記錄,此時遇到問題就是_字符是通配符,我們的做法就是使用轉移字符。
第一種方法:SELECT * FROM Persons WHERE City LIKE '___\_%' 第二種方法:SELECT * FROM Persons WHERE City LIKE '___$_% ESCAPE '$''
3.使用 [charlist] 通配符
例子 (1)
現在,我們希望從上面的 "Persons" 表中選取居住的城市以 "A" 或 "L" 或 "N" 開頭的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
例子 (2)
現在,我們希望從上面的 "Persons" 表中選取居住的城市不以 "A" 或 "L" 或 "N" 開頭的人:
我們可以使用下面的 SELECT 語句:
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'