📅  最后修改于: 2020-12-29 04:41:52             🧑  作者: Mango
我们已经讨论过SQL LIKE运算符,该运算符用于使用通配符运算符将值与相似值进行比较。
SQL与LIKE运算符一起支持两个通配符运算符符,下表对此进行了详细说明。
Sr.No. | Wildcard & Description |
---|---|
1 |
The percent sign (%) Matches one or more characters. Note − MS Access uses the asterisk (*) wildcard character instead of the percent sign (%) wildcard character. |
2 |
The underscore (_) Matches one character. Note − MS Access uses a question mark (?) instead of the underscore (_) to match any one character. |
百分号代表零个,一个或多个字符。下划线表示单个数字或字符。这些符号可以组合使用。
‘%’和’_’运算符的基本语法如下。
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子句带有’%’和’_’运算符。
Sr.No. | Statement & Description |
---|---|
1 |
WHERE SALARY LIKE ‘200%’ Finds any values that start with 200. |
2 |
WHERE SALARY LIKE ‘%200%’ Finds any values that have 200 in any position. |
3 |
WHERE SALARY LIKE ‘_00%’ Finds any values that have 00 in the second and third positions. |
4 |
WHERE SALARY LIKE ‘2_%_%’ Finds any values that start with 2 and are at least 3 characters in length. |
5 |
WHERE SALARY LIKE ‘%2’ Finds any values that end with 2. |
6 |
WHERE SALARY LIKE ‘_2%3’ Finds any values that have a 2 in the second position and end with a 3. |
7 |
WHERE SALARY LIKE ‘2___3’ Finds any values in a five-digit number that start with 2 and end with 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 |
+----+----------+-----+-----------+----------+