Mysql 简明教程

MySQL - NOT REGEXP Operator

MySQL NOT REGEXP Operator

从技术上讲,正则表达式被定义为一串字符,它表示输入文本中的一个模式。它用于使用一些模式查找或替换文本字符串;此模式可以是单个字符、多个字符或单词等。

在 MySQL 中, REGEXP 运算符是一个功能强大的工具,用于在数据库中执行复杂搜索操作,以使用正则表达式检索所需数据。与 LIKE 运算符不同,REGEXP 运算符不受搜索模式(如 % 和 _)的限制,因为它使用其他几个元字符来扩展模式匹配期间的灵活性和控制。

NOT REGEXP 运算符对该 REGEXP 运算符取反。它用于检索数据库中所有不满足指定模式的记录。让我们在本章中进一步详细了解此运算符。

Syntax

以下是 MySQL NOT REGEXP 运算符的基本语法 −

expression NOT REGEXP pattern

Note − 由于这只是取反,NOT REGEXP 运算符的功能将与 REGEXP 运算符相同。

Examples

让我们首先使用以下查询创建一个名为 CUSTOMERS 的表 −

CREATE TABLE CUSTOMERS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

下面的 INSERT 语句将 7 条记录插入到上面创建的表中 −

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES
(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, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

执行以下查询以显示 CUSTOMERS 表中存在的所有记录 −

Select * from CUSTOMERS;

以下为 CUSTOMERS 表 −

现在,让我们使用该表中的几个查询来展示 NOT REGEXPM 运算符的使用。

查找所有不以 'ra' 开头的名称的查询 −

SELECT * FROM CUSTOMERS WHERE NAME NOT REGEXP '^ra';

输出如下:

检索名称不以 'ik' 结尾的所有记录的查询 −

SELECT * FROM CUSTOMERS WHERE NAME NOT REGEXP 'ik$';

输出如下:

以下是查找所有不包含 'an' 的名称的查询 −

SELECT * FROM CUSTOMERS WHERE NAME NOT REGEXP 'an';

输出如下:

Example

NOT RLIKE 是 MySQL 中 NOT REGEXP 的替代语法。两个运算符具有相同的结果。如果前两个操作数之一为 NULL,则此运算符返回 NULL。

在下面的查询中,字符串值为 NULL。因此,它将输出为 NULL。

SELECT NULL NOT RLIKE 'value';

输出如下:

此处,指定模式为 NULL。因此,结果将检索为 NULL。

SELECT 'Tutorialspoint' NOT REGEXP NULL;

输出如下:

NOT REGEXP Operator Using a Client Program

除了使用 MySQL 查询执行 NOT REGEXP 运算符之外,我们还可以使用诸如 PHP、Node.js、Java 和 Python 等客户端程序来实现相同的结果。

Syntax

以下是此操作在各种编程语言中的语法 −

Example

以下是这些程序 −