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 | +----+----------+-----+-----------+----------+