Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để nối các Giá trị trong Truy vấn MySQL và để xử lý các giá trị Null?

Bạn có thể sử dụng phương thức CONCAT () để nối các giá trị trong khi phương thức IFNULL () được sử dụng để xử lý các giá trị NULL. Cú pháp như sau:

SELECT
CONCAT('anyStringValue:',IFNULL(yourColumnName, 'anyStringValue’)) AS anyVariableName
FROM yourTableName;

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau:

mysql> create table ConcatValues
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> FirstName varchar(20),
   -> MiddleName varchar(20),
   -> LastName varchar(20),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.62 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau:

mysql> insert into ConcatValues(FirstName,MiddleName,LastName) values('John' ,NULL ,'Smith');
Query OK, 1 row affected (0.24 sec)

mysql> insert into ConcatValues(FirstName,MiddleName,LastName) values('Carol' ,NULL ,'Taylor');
Query OK, 1 row affected (0.16 sec)

mysql> insert into ConcatValues(FirstName,MiddleName,LastName) values('David' ,NULL ,'Miller');
Query OK, 1 row affected (0.23 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau:

mysql> select *from ConcatValues;

Sau đây là kết quả:

+----+-----------+------------+----------+
| Id | FirstName | MiddleName | LastName |
+----+-----------+------------+----------+
| 1 | Mary | Elizabeth | Smith |
| 2 | John | NULL | Smith |
| 3 | Carol | NULL | Taylor |
| 4 | David | NULL | Miller |
+----+-----------+------------+----------+
4 rows in set (0.00 sec)

Đây là truy vấn để xử lý các giá trị NULL và nối:

mysql> select
   -> concat('The middle name is:',IFNULL(MiddleName, 'Not Available')) AS MiddleName
   -> from ConcatValues;

Sau đây là kết quả:

+----------------------------------+
| MiddleName                       |
+----------------------------------+
| The middle name is:Elizabeth     |
| The middle name is:Not Available |
| The middle name is:Not Available |
| The middle name is:Not Available |
+----------------------------------+
4 rows in set (0.00 sec)