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

Làm thế nào để sử dụng Coalesce trong MySQL?

Liên kết trong MySQL có thể được sử dụng để trả về giá trị đầu tiên không phải null. Nếu có nhiều cột và tất cả các cột đều có giá trị NULL thì nó trả về giá trị NULL, ngược lại nó sẽ trả về giá trị đầu tiên không phải null.

Cú pháp như sau.

SELECT COALESCE(yourColumnName1,yourColumnName2,yourColumnName3,.......N) as
anyVariableName from yourTableName;

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

mysql> create table CoalesceDemo
-> (
-> Id int,
-> Name varchar(100),
-> Age int,
-> Address varchar(100)
-> );
Query OK, 0 rows affected (0.57 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 CoalesceDemo values(1,NULL,NULL,NULL);
Query OK, 1 row affected (0.14 sec)

mysql> insert into CoalesceDemo values(NULL,'Mike',NULL,NULL);
Query OK, 1 row affected (0.17 sec)

mysql> insert into CoalesceDemo values(NULL,NULL,23,NULL);
Query OK, 1 row affected (0.24 sec)

mysql> insert into CoalesceDemo values(NULL,NULL,NULL,'UK');
Query OK, 1 row affected (0.14 sec)

mysql> insert into CoalesceDemo values(NULL,NULL,NULL,NULL);
Query OK, 1 row affected (0.17 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 CoalesceDemo;

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

+------+------+------+---------+
| Id    | Name | Age | Address |
+------+------+------+---------+
| 1    | NULL | NULL | NULL    |
| NULL | Mike | NULL | NULL    |
| NULL | NULL | 23   | NULL    |
| NULL | NULL | NULL | UK      |
| NULL | NULL | NULL | NULL    |
+------+------+------+---------+
5 rows in set (0.00 sec)

Đây là tất cả các trường hợp mà bạn có thể trả về giá trị NOT NULL đầu tiên. Truy vấn như sau.

mysql> select Coalesce(Id,Name,Age,Address) as FirstNotNullValue from CoalesceDemo;

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

+-------------------+
| FirstNotNullValue |
+-------------------+
| 1                 |
| Mike              |
| 23                |
| UK                |
| NULL              |
+-------------------+
5 rows in set (0.00 sec)