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 次瀏覽

開啟你的 職業生涯

完成課程,獲得認證

開始學習
廣告