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

Nối chuỗi và bỏ qua giá trị NULL trong MySQL

Kết hợp CONCAT() để nối chuỗi và IFNULL() để thay thế NULL thành chuỗi rỗng.

Tạo bảng và dữ liệu có NULL

mysql> CREATE TABLE DemoTable802(FirstName VARCHAR(100), LastName VARCHAR(100)); 
Query OK, 0 rows affected (1.01 sec)

mysql> INSERT INTO DemoTable802 VALUES 
('Adam','Smith'), ('Carol',NULL), (NULL,'Taylor'), (NULL,NULL); 
Query OK, 4 rows affected

Nối tên đầy đủ, bỏ qua NULL

mysql> SELECT CONCAT(IFNULL(FirstName, ''), ' ', IFNULL(LastName, '')) AS FULL_NAME 
FROM DemoTable802;

Kết quả:

+------------+
| FULL_NAME  |
+------------+
| Adam Smith |
| Carol      |
| Taylor     |
|            |
+------------+

Lưu ý: CONCAT() trả về NULL nếu bất kỳ đối số nào là NULL. Do đó bắt buộc dùng IFNULL() hoặc COALESCE().

Cách thay thế: CONCAT(COALESCE(FirstName,''), ' ', COALESCE(LastName,'')) - COALESCE chuẩn SQL, hỗ trợ nhiều đối số.

MySQL 8.0+: Có thể dùng CONCAT_WS(' ', FirstName, LastName) - tự bỏ qua NULL và dùng separator ' '.