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

GROUP BY และแสดงเฉพาะค่าคอลัมน์ที่ไม่ว่างใน MySQL


ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable -> ( -> Id varchar(100), -> Message varchar(200) -> );Query OK, 0 แถวได้รับผลกระทบ (1.17 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('1',''); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า DemoTable ('1', 'สวัสดี'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.21 วินาที)mysql> แทรกลงในค่า DemoTable ('2', 'สวัสดี'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable ('3', 'ยอดเยี่ยม'); แบบสอบถามตกลง 1 แถวที่ได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า DemoTable ('3', 'อรุณสวัสดิ์'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า DemoTable ('2', NULL); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)

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

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

ผลลัพธ์

<ก่อนหน้า>+------+-------------+| รหัส | ข้อความ |+------+-------------+| 1 | || 1 | สวัสดี || 2 | สวัสดี || 3 | สุดยอด || 3 | สวัสดีตอนเช้า || 2 | NULL |+------+--------------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อจัดกลุ่มและเลือกคอลัมน์แรกที่ไม่ว่างเปล่า -

mysql> เลือก Id,min(Message) จาก DemoTable -> โดยที่ Message IS NOT NULL และ length(Message)> 0 -> group by Id;

ผลลัพธ์

<ก่อนหน้า>+------+-------------+| รหัส | นาที(ข้อความ) |+------+-------------+| 1 | สวัสดี || 2 | สวัสดี || 3 | สุดยอด |+------+--------------+3 แถวในชุด (0.06 วินาที)