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)