如何在 SQL Server 的 LIKE 子句中转义方括号?
在这里我们将看到,如何在 LIKE 子句中转义方括号。在 SQL 中用于模式匹配的 LIKE 子句使用通配符,如 %、^、[] 等。如果我们尝试使用带有运算符括号组成的字符串的 LIKE 子句过滤记录,我们将不会得到预期的结果。
例如:
对于表中的字符串值 Romy[R]kumari。如果我们尝试将 LIKE 'Romy[R]%' 应用于 select 语句,它将不会返回任何内容。
解释:
方括号[] 是 SQL 中带有 LIKE 子句的通配符运算符之一。它用于匹配指定范围内的任何单个字符,如 ([bh]) 或 set ([ghijk])。
我们可以使用两种方法来转义方括号:
- 使用另一个方括号转义
- 使用转义字符转义
第一步:创建数据库
可以使用 CREATE 命令创建数据库。
询问:
CREATE DATABASE geeks;
第 2 步:使用数据库
使用以下 SQL 语句将数据库上下文切换到 geeks:
询问:
USE geeks;
第 3 步:表定义
我们的极客数据库中有以下 demo_table。
询问:
CREATE TABLE demo_table(
FIRSTNAME VARCHAR(20), LASTNAME VARCHAR(20),
EMPCODE VARCHAR(20));
第 4 步:向表中插入数据
询问:
INSERT INTO demo_table VALUES
('ROMY', 'Kumari', 'ROMY[78]KUM'),
('Rinkle', 'Arora', 'RINKLE[78}ARO'),
('Nikhil', 'Kalra','NIKHIL[90]Kal'),
('Pushkar', 'Jha', 'PUSHKAR[91]JHA'),
('Sujata', 'jha', 'SUJATA[98]JHA'),
('Roshini', 'Kumari','ROSHINI[78]');
第 5 步:查看表数据
询问:
SELECT * FROM demo_table;
输出:
方法一:使用额外的支架
句法:
用于匹配 'ROMY[78]'
SELECT *
FROM table_name
WHERE column_name LIKE 'ROMY[[]78]%'
查询:匹配具有 [78] 的 EMPCODE
SELECT *
FROM demo_table
WHERE EMPCODE LIKE '%[[]78]%'
输出:
方法二:使用转义字符
在这种方法中,我们必须在 LIKE 子句之后使用ESCAPE关键字指定字符。
句法:
用于匹配 'ROMY[78]'
SELECT *
FROM table_name
WHERE column_name LIKE 'ROMY\[78]%' ESCAPE '\';
询问:
SELECT *
FROM demo_table
WHERE EMPCODE LIKE '%\[78]%' ESCAPE '\';
输出: