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

การจัดเรียงข้อมูล MySQL ตามตัวอักษรแรกของข้อความ

หากต้องการจัดเรียงข้อมูลตามตัวอักษรตัวแรกของคอลัมน์ข้อความ สามารถใช้คำสั่ง ORDER BY CASE ได้ เริ่มต้นด้วยการสร้างตาราง:

mysql> CREATE TABLE DemoTable1535 (
    -> Value VARCHAR(100)
    -> );
Query OK, 0 rows affected (2.26 sec)

เพิ่มข้อมูลตัวอย่าง:

mysql> INSERT INTO DemoTable1535 VALUES('MySQL is good relational database.');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable1535 VALUES('is MySQL easy to lean');
Query OK, 1 row affected (0.35 sec)
mysql> INSERT INTO DemoTable1535 VALUES('You need to start basic SQL');
Query OK, 1 row affected (0.35 sec)

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

mysql> SELECT * FROM DemoTable1535;

ผลลัพธ์ก่อนจัดเรียง:

+------------------------------------+
| Value                              |
+------------------------------------+
| MySQL is good relational database. |
| is MySQL easy to lean              |
| You need to start basic SQL        |
+------------------------------------+
3 rows in set (0.00 sec)

คิวรี่จัดเรียงให้ตัวอักษร 'i' อยู่หน้าสุด ตามด้วยตัวอักษรอื่นๆ:

mysql> SELECT * FROM DemoTable1535
    -> ORDER BY CASE WHEN LEFT(Value, 1) = 'i' THEN 1 ELSE 2 END, Value;

ผลลัพธ์หลังจัดเรียง:

+------------------------------------+
| Value                              |
+------------------------------------+
| is MySQL easy to lean              |
| MySQL is good relational database. |
| You need to start basic SQL        |
+------------------------------------+
3 rows in set (0.00 sec)

คำอธิบาย: ฟังก์ชัน LEFT(Value, 1) ดึงตัวอักษรตัวแรก แล้ว CASE กำหนดลำดับความสำคัญ: ตัวที่ขึ้นต้นด้วย 'i' ได้ค่า 1 (มาก่อน) ส่วนที่เหลือได้ค่า 2 ตามด้วยการจัดเรียงตามค่า Value ปกติ