色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql regexp 非

傅智翔2年前14瀏覽0評論

MySQL中有一個強(qiáng)大的正則表達(dá)式匹配函數(shù)regexp,可以幫助我們方便地對數(shù)據(jù)進(jìn)行模糊匹配,不過有時候我們需要用到的是“非”,也就是說我們需要匹配不滿足某個正則表達(dá)式的數(shù)據(jù)。那么該如何使用MySQL的regexp來實(shí)現(xiàn)這個功能呢?下面我們就來學(xué)習(xí)一下。

SELECT * FROM table_name WHERE column_name NOT REGEXP 'expression';

以上是MySQL中使用正則表達(dá)式“非”的方法。可以看到,我們只需要在regexp之前加上NOT關(guān)鍵字,就可以實(shí)現(xiàn)不符合正則表達(dá)式的匹配。

下面我們來看一下具體的實(shí)例:

CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `user` (`name`) VALUES ('Tom1'),('Tom2'),('Jerry1'),('Jerry2'),('Linda1'),('Linda2');

現(xiàn)在我們需要查詢所有不以數(shù)字結(jié)尾的名字,可以使用以下代碼來實(shí)現(xiàn):

SELECT * FROM user WHERE name NOT REGEXP '[0-9]$';

以上代碼中,$表示匹配結(jié)尾,[0-9]表示匹配數(shù)字,所以[0-9]$表示以數(shù)字結(jié)尾的字符串。

通過以上代碼,我們可以得出結(jié)果為:

+----+-------+
| id | name  |
+----+-------+
|  1 | Tom1  |
|  2 | Tom2  |
|  5 | Linda1|
|  6 | Linda2|
+----+-------+

我們可以看到,只有四條記錄不以數(shù)字結(jié)尾,符合我們的要求。

通過以上例子,我們可以看到使用MySQL的regexp函數(shù)來實(shí)現(xiàn)“非”匹配也是非常方便的。可以幫助我們快速篩選出不符合規(guī)則的數(shù)據(jù)。