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

จะเชื่อมค่าใน MySQL Query และจัดการกับค่า Null ได้อย่างไร


คุณสามารถใช้วิธี CONCAT() เพื่อเชื่อมค่าต่าง ๆ ในขณะที่เมธอด IFNULL() ใช้เพื่อจัดการค่า NULL ไวยากรณ์มีดังนี้:

SELECTCONCAT('anyStringValue:',IFNULL(yourColumnName, 'anyStringValue')) AS anyVariableNameFROM yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง ConcatValues ​​-> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> FirstName varchar(20), -> MiddleName varchar(20), -> LastName varchar(20), -> PRIMARY KEY(Id) -> );แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.62 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> แทรกลงใน ConcatValues ​​(FirstName,MiddleName,LastName) ค่า ('John' ,NULL ,'Smith'); เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> แทรกลงใน ConcatValues ​​(FirstName, MiddleName, LastName) values('Carol' ,NULL ,'Taylor');Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน ConcatValues ​​(FirstName,MiddleName,LastName) ค่า ('David' ,NULL ,'Miller');Query OK , 1 แถวได้รับผลกระทบ (0.23 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

mysql> เลือก *จาก ConcatValues;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+----+-----------+------------+----------+| รหัส | ชื่อจริง | ชื่อกลาง | นามสกุล |+----+-----------+------------+----------+| 1 | แมรี่ | เอลิซาเบธ | สมิธ || 2 | จอห์น | NULL | สมิธ || 3 | แครอล | NULL | เทย์เลอร์ || 4 | เดวิด | NULL | มิลเลอร์ |+----+-----------+------------+----------+4 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นเพื่อจัดการค่า NULL และเชื่อมค่า:

mysql> select -> concat('ชื่อกลางคือ:',IFNULL(MiddleName, 'Not Available')) AS MiddleName -> จาก ConcatValues;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+------------------------------------------------+| ชื่อกลาง |+-----------------------------------+| ชื่อกลางคือ:Elizabeth || ชื่อกลางคือ:ไม่ว่าง || ชื่อกลางคือ:ไม่ว่าง || ชื่อกลางคือ:ไม่ว่าง |+----------------------------------+4 แถวในชุด (0.00 วินาที)