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)
   -> );

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

mysql> insert into Replace_Demo(Value) values('221)');
mysql> insert into Replace_Demo(Value) values('321');
mysql> insert into Replace_Demo(Value) values('354)');
mysql> insert into Replace_Demo(Value) values('223)');
mysql> insert into Replace_Demo(Value) values('446');

使用 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)%';
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)