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

การเรียกใช้ฟังก์ชันรวมใน ORDER BY ด้วย MySQL

สามารถใช้ฟังก์ชัน GROUP_CONCAT() ร่วมกับ ORDER BY เพื่อจัดเรียงข้อมูลก่อนรวมเป็นสตริงเดียว

ตัวอย่างการใช้งาน

สร้างตารางนักเรียน:

mysql> create table DemoTable1588 (
    -> StudentId int,
    -> StudentFirstName varchar(20),
    -> StudentMarks int
    -> );
Query OK, 0 rows affected (0.49 sec)

เพิ่มข้อมูลทดสอบ:

mysql> insert into DemoTable1588 values(110,'Bob',78);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1588 values(101,'Sam',78);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1588 values(105,'Mike',78);
Query OK, 1 row affected (0.26 sec)

ดูข้อมูลทั้งหมด:

mysql> select * from DemoTable1588;
+-----------+------------------+--------------+
| StudentId | StudentFirstName | StudentMarks |
+-----------+------------------+--------------+
|       110 | Bob              |           78 |
|       101 | Sam              |           78 |
|       105 | Mike             |           78 |
+-----------+------------------+--------------+
3 rows in set (0.00 sec)

คิวรีใช้ GROUP_CONCAT กับ ORDER BY

mysql> select group_concat(StudentFirstName order by StudentId separator '--') 
    -> from DemoTable1588 
    -> group by StudentMarks;

ผลลัพธ์: ชื่อจะถูกรวมตามลำดับ StudentId แยกด้วย '--'

+------------------------------------------------------------------+
| group_concat(StudentFirstName order by StudentId separator '--') |
+------------------------------------------------------------------+
| Sam--Mike--Bob                                                   |
+------------------------------------------------------------------+
1 row in set (0.04 sec)

คำอธิบาย

ORDER BY ภายใน GROUP_CONCAT() จะจัดลำดับค่าก่อนทำการรวม ส่วน separator กำหนดตัวคั่นระหว่างค่า