📜  如何在 SQL Server 的 LIKE 子句中转义方括号?

📅  最后修改于: 2022-05-13 01:55:36.702000             🧑  作者: Mango

如何在 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 '\';

输出: