Giới thiệu
Sử dụng hàm REPLACE() để xóa tất cả khoảng trắng trong cột lưu số điện thoại, mã số... có chứa khoảng trắng.
1. Tạo bảng và dữ liệu
mysql> create table DemoTable1546 (
-> Number varchar(20)
-> );
Query OK, 0 rows affected (0.99 sec)
mysql> insert into DemoTable1546 values('145 78 90');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1546 values('89 789 564 903');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1546 values('1345 7894 866 653534');
Query OK, 1 row affected (0.12 sec)
2. Dữ liệu gốc
mysql> select * from DemoTable1546;
+----------------------+ | Number | +----------------------+ | 145 78 90 | | 89 789 564 903 | | 1345 7894 866 653534 | +----------------------+ 3 rows in set (0.00 sec)
3. Cập nhật xóa khoảng trắng
mysql> update DemoTable1546 set Number = replace(Number, ' ', ''); Query OK, 3 rows affected (0.13 sec) Rows matched: 3 Changed: 3 Warnings: 0
4. Kết quả
mysql> select * from DemoTable1546;
+-------------------+ | Number | +-------------------+ | 1457890 | | 89789564903 | | 13457894866653534 | +-------------------+ 3 rows in set (0.00 sec)
Mở rộng: Xóa nhiều ký tự đặc biệt cùng lúc:
UPDATE DemoTable1546
SET Number = REPLACE(REPLACE(REPLACE(Number, ' ', ''), '-', ''), '(', '')
-- hoặc dùng REGEXP_REPLACE (MySQL 8.0+)
SET Number = REGEXP_REPLACE(Number, '[^0-9]', '');
Lưu ý: REPLACE phân biệt chữ hoa/thường. Để xóa tab, newline: REPLACE(Number, CHAR(9), ''), REPLACE(Number, CHAR(10), '').