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)
廣告