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

แบบสอบถาม MySQL เพื่อรวมสองคอลัมน์ในคอลัมน์เดียว?


คุณสามารถใช้ฟังก์ชัน COALESCE() สำหรับสิ่งนี้ ในฟังก์ชัน COALESCE() จะส่งคืนค่า NON NULL แรกจากคอลัมน์ เพื่อให้เข้าใจแนวคิดนี้ ให้เราสร้างตารางสาธิตก่อน

mysql> สร้างตาราง combineTwoColumnsDemo -> ( -> UserId int, -> UserName varchar(20), -> UserAge int -> );Query OK, 0 แถวได้รับผลกระทบ (1.12 วินาที)

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

mysql> แทรกลงในค่า combineTwoColumnsDemo (101,'John', 23); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> ลงในค่ารวมของ CombineTwoColumnsDemo (102, 'Carol', 20); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า combineTwoColumnsDemo (103, 'Bob', 25); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า combineTwoColumnsDemo (104, 'Mike', 26); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า combineTwoColumnsDemo (105, NULL, 23); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่ารวม CombineTwoColumnsDemo (105, 'Maxwell', NULL); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)

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

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

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

<ก่อนหน้า>+---------+----------+---------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | อายุผู้ใช้ |+---------+----------+---------+| 101 | จอห์น | 23 || 102 | แครอล | 20 || 103 | บ๊อบ | 25 || 104 | ไมค์ | 26 || 105 | NULL | 23 || 105 | แม็กซ์เวลล์ | NULL |+---------+----------+---------+6 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่จะรวมสองคอลัมน์ในคอลัมน์เดียว

mysql> เลือกชื่อผู้ใช้ -> UserAge -> COALESCE (ชื่อผู้ใช้, UserAge) AS Combine_UserName_UserAge -> FROM combineTwoColumnsDemo;

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

<ก่อนหน้า>+----------+---------+------------------------- -+| ชื่อผู้ใช้ | อายุผู้ใช้ | Combine_UserName_UserAge |+----------+---------+-------------------------- +| จอห์น | 23 | จอห์น || แครอล | 20 | แครอล || บ๊อบ | 25 | บ๊อบ || ไมค์ | 26 | ไมค์ || NULL | 23 | 23 || แม็กซ์เวลล์ | NULL | แม็กซ์เวลล์ |+----------+---------+-------------------------- +6 แถวในชุด (0.00 วินาที)