SQL通配符運算符
我們已經討論了SQL LIKE操作符,它是用來比較數據值,與使用通配符運算符相似。
SQL支持以下兩種通配符運算符與LIKE運算符一起使用:
通配符
描述
百分號 (%)
匹配一個或多個字符。需要注意的是MS Access使用星號(*)通配符代替百分號(%)通配符。
下劃線 (_)
匹配一個字符。請注意,MS Access使用一個問號(?)而不是下劃線(_)來匹配任何一個字符。
百分號代表零個,一個或多個字符。下劃線表示單個數字或字符。所述符號可以在組合使用。
語法
'%'和'_'的基本語法如下:
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運算符組合N多的條件。在這裏,XXXX可以是任何數字或字符串值。
例子:
這裏有例子顯示了WHERE部分不同於LIKE子句以'%'和'&'運算符:
語句
描述
WHERE SALARY LIKE '200%'
查找以200開始的任何值
WHERE SALARY LIKE '%200%'
找到含有200在任何位置的任何值
WHERE SALARY LIKE '_00%'
找到在第二和第三位置是00的任何值
WHERE SALARY LIKE '2_%_%'
查找以2開始並且長度至少爲3個字符的任何值
WHERE SALARY LIKE '%2'
查找以2結尾的任何值
WHERE SALARY LIKE '_2%3'
查找2在第二位置,並以3結束的任何值
WHERE SALARY LIKE '2___3'
找到在5位數字開頭爲2,並以3結束的任何值
讓我們以一個真實的例子,請考慮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 | +----+----------+-----+-----------+----------+
下面是一個例子,這將顯示來自CUSTOMERS表中的所有記錄,其中薪水SALARY爲200:
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
這將產生以下結果:
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 3 | kaushik | 23 | Kota | 2000.00 | +----+----------+-----+-----------+----------+