Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ต่อสตริงข้ามค่า NULL ใน MySQL ด้วย CONCAT และ IFNULL

ใช้ IFNULL() แปลง NULL เป็นค่าว่าง แล้ว CONCAT() ต่อสตริง

สร้างตารางและเพิ่มข้อมูล (มี 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'); Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable802 values('Carol',NULL); Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable802 values(NULL,'Taylor'); Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable802 values(NULL,NULL); Query OK, 1 row affected (0.21 sec)

คิวรีต่อชื่อ-นามสกุล ข้าม NULL

mysql> select concat(IFNULL(FirstName,''), ' ', IFNULL(LastName,'')) AS FULL_NAME 
from DemoTable802;
+------------+
| FULL_NAME  |
+------------+
| Adam Smith |
| Carol      |
| Taylor     |
|            |
+------------+
4 rows in set (0.00 sec)

หมายเหตุ: CONCAT() จะคืน NULL หากมีอาร์กิวเมนต์ใดเป็น NULL ต้องใช้ IFNULL/COALESCE กันก่อน