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';
输出如下: