MySQL 是否可以更新正则表达式?


无法使用正则表达式更新,即需要使用 LIKE 运算符来代替正则表达式。MySQL 不支持使用正则表达式进行更新。LIKE 运算符如下所示

UPDATE yourTableName SET yourColumnName= REPLACE(yourColumnName,yourValue)', '' )
WHERE yourColumnNameLIKE '%yourValueThatWillReplace)%';

为了理解上述语法,我们创建一个表。

mysql> create table Replace_Demo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Value varchar(20),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.62 sec)

使用 insert 命令在表中插入一些记录。查询如下所示

mysql> insert into Replace_Demo(Value) values('221)');
Query OK, 1 row affected (0.22 sec)
mysql> insert into Replace_Demo(Value) values('321');
Query OK, 1 row affected (0.24 sec)
mysql> insert into Replace_Demo(Value) values('354)');
Query OK, 1 row affected (0.18 sec)
mysql> insert into Replace_Demo(Value) values('223)');
Query OK, 1 row affected (0.09 sec)
mysql> insert into Replace_Demo(Value) values('446');
Query OK, 1 row affected (0.13 sec)

使用 select 语句从表中显示所有记录。查询如下所示

mysql> select *from Replace_Demo;

以下是输出内容

+----+-------+
| Id | Value |
+----+-------+
|  1 | 221)  |
|  2 | 321   |
|  3 | 354)  |
|  4 | 223)  |
|  5 | 446   |
+----+-------+
5 rows in set (0.00 sec)

以下是对 LIKE 运算符(而非正则表达式)的更新查询

mysql> update Replace_Demo set Value = REPLACE(Value,'221)', '' )
   -> WHERE Value like '%221)%';
Query OK, 1 row affected (0.21 sec)
Rows matched: 1 Changed: 1 Warnings: 0

现在,使用 select 语句再次查看表记录。查询如下所示

mysql> select *from Replace_Demo;

以下是输出内容

+----+-------+
| Id | Value |
+----+-------+
|  1 |       |
|  2 | 321   |
|  3 | 354)  |
|  4 | 223)  |
|  5 | 446   |
+----+-------+
5 rows in set (0.00 sec)

更新于:2019-07-30

347 次浏览

开启你的 职业生涯

完成课程,获得认证

开始学习
广告
© . All rights reserved.