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

Loại bỏ khoảng trắng giữa các chữ số trong MySQL

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), '').