SQL LIKE子句使用通配符运算符比较相似的值。符合LIKE操作符配合使用2个通配符:
百分号 (%)
下划线 (_)
百分号代表零个,一个或多个字符。下划线表示单个数字或字符。所述符号可以在组合使用。
%和_的基本语法如下:
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可以是任何数字或字符串值。
这里显示了以LIKE子句带用WHERE的'%'和'_'运算符不同的几个例子:
语句 | 描述 |
---|---|
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表中薪水以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 |
+----+----------+-----+-----------+----------+