Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Có thể UPDATE với REGEXP trong MySQL không?

Không thể UPDATE với REGEXP trong MySQL. Cần dùng toán tử LIKE thay thế. MySQL không hỗ trợ UPDATE với REGEXP.

Cú pháp LIKE:

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

Tạo bảng demo:

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)

Chèn dữ liệu:

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)

Hiển thị dữ liệu:

mysql> select *from Replace_Demo;
+----+-------+ | Id | Value | +----+-------+ |  1 | 221)  | |  2 | 321   | |  3 | 354)  | |  4 | 223)  | |  5 | 446   | +----+-------+ 5 rows in set (0.00 sec)

UPDATE với LIKE thay vì REGEXP:

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

Kiểm tra lại:

mysql> select *from Replace_Demo;
+----+-------+ | Id | Value | +----+-------+ | 1 |       | | 2 | 321 | | 3 | 354) | | 4 | 223) | | 5 | 446 | +----+-------+ 5 rows in set (0.00 sec)