我們已經(jīng)討論了SQL LIKE操作符,它是用來(lái)比較數(shù)據(jù)值,與使用通配符運(yùn)算符相似。
SQL支持以下兩種通配符運(yùn)算符與LIKE運(yùn)算符一起使用:
| 通配符 | 描述 |
|---|---|
| 百分號(hào) (%) | 匹配一個(gè)或多個(gè)字符。需要注意的是MS Access使用星號(hào)(*)通配符代替百分號(hào)(%)通配符。 |
| 下劃線 (_) | 匹配一個(gè)字符。請(qǐng)注意,MS Access使用一個(gè)問(wèn)號(hào)(?)而不是下劃線(_)來(lái)匹配任何一個(gè)字符。 |
百分號(hào)代表零個(gè),一個(gè)或多個(gè)字符。下劃線表示單個(gè)數(shù)字或字符。所述符號(hào)可以在組合使用。
'%'和'_'的基本語(yǔ)法如下:
SELECT FROM table_name WHERE column LIKE 'XXXX%' or SELECT FROM table_name WHERE column LIKE '%XXXX%' or SELECT FROM table_name WHERE column LIKE 'XXXX_' or SELECT FROM table_name WHERE column LIKE '_XXXX' or SELECT FROM table_name WHERE column LIKE '_XXXX_'
可以使用AND或OR運(yùn)算符組合N多的條件。在這里,XXXX可以是任何數(shù)字或字符串值。
這里有例子顯示了WHERE部分不同于LIKE子句以'%'和'&'運(yùn)算符:
| 語(yǔ)句 | 描述 |
|---|---|
| WHERE SALARY LIKE '200%' | 查找以200開(kāi)始的任何值 |
| WHERE SALARY LIKE '%200%' | 找到含有200在任何位置的任何值 |
| WHERE SALARY LIKE '_00%' | 找到在第二和第三位置是00的任何值 |
| WHERE SALARY LIKE '2_%_%' | 查找以2開(kāi)始并且長(zhǎng)度至少為3個(gè)字符的任何值 |
| WHERE SALARY LIKE '%2' | 查找以2結(jié)尾的任何值 |
| WHERE SALARY LIKE '_2%3' | 查找2在第二位置,并以3結(jié)束的任何值 |
| WHERE SALARY LIKE '2___3' | 找到在5位數(shù)字開(kāi)頭為2,并以3結(jié)束的任何值 |
讓我們以一個(gè)真實(shí)的例子,請(qǐng)考慮CUSTOMERS表有以下記錄:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Muffy | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+
下面是一個(gè)例子,這將顯示來(lái)自CUSTOMERS表中的所有記錄,其中薪水SALARY為200:
SQL> SELECT * FROM CUSTOMERS WHERE SALARY LIKE '200%';
這將產(chǎn)生以下結(jié)果:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 3 | kaushik | 23 | Kota | 2000.00 | +----+----------+-----+-----------+----------+