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

แบบสอบถาม MySQL เพื่อแสดงรายการทั้งหมดในกลุ่มในหนึ่งระเบียน?


คุณสามารถใช้ฟังก์ชัน GROUP_CONCAT() เพื่อแสดงรายการทั้งหมดในกลุ่มในระเบียนเดียว ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( ProductId int, ProductName varchar(40), ProductCategory varchar(40));Query OK, 0 แถวได้รับผลกระทบ (0.67 วินาที)

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

mysql> แทรกลงในค่า DemoTable (100,'Product-1','1Product');Query OK, 1 แถวได้รับผลกระทบ (0.11 วินาที)mysql> แทรกลงในค่า DemoTable (101,'Product-2','2Product ');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.12 วินาที)mysql> แทรกลงในค่า DemoTable (100,'Product-1','3Product'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-----------+-------------+-----------------+| ProductId | ชื่อสินค้า | หมวดหมู่สินค้า |+-----------+-------------+-----------------+| 100 | สินค้า-1 | 1สินค้า || 101 | สินค้า-2 | 2ผลิตภัณฑ์ || 100 | สินค้า-1 | 3Product |+-----------+----------------------------------------------------------+3 แถวใน ตั้งค่า (0.00 วินาที)

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

mysql> เลือก ProductId,group_concat(ProductCategory) AS `GROUP` จากกลุ่ม DemoTable ตาม ProductId;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----------+-------------------+| ProductId | กลุ่ม |+-----------+--------------------------+| 100 | 1ผลิตภัณฑ์,3ผลิตภัณฑ์ || 101 | 2Product |+-----------+-------------------+2 แถวในชุด (0.00 วินาที)