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

ORDER BY FIELD ร่วมกับ GROUP BY ใน MySQL คิวรีเดียว

ใช้ GROUP BY รวมค่าซ้ำ แล้ว ORDER BY FIELD() กำหนดลำดับเฉพาะเจาะจง

สร้างตารางและเพิ่มข้อความซ้ำ

mysql> create table DemoTable ( Message text ); 
Query OK, 0 rows affected (1.15 sec)

mysql> insert into DemoTable values('Good'); Query OK, 1 row affected (0.43 sec)
mysql> insert into DemoTable values('Bye'); Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Awesome'); Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Bye'); Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values('Good'); Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values('Amazing'); Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Awesome'); Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Bye'); Query OK, 1 row affected (0.12 sec)

คิวรี GROUP BY แล้ว ORDER BY FIELD

mysql> select * from DemoTable 
group by Message 
order by field(Message,'Amazing','Awesome','Good','Bye');
+---------+
| Message |
+---------+
| Amazing |
| Awesome |
| Good    |
| Bye     |
+---------+
4 rows in set (0.04 sec)

FIELD() คืนตำแหน่งของค่าในรายการ (1-based) ใช้สั่งลำดับได้ตามใจชอบ