หากต้องการจัดเรียงข้อมูลตามตัวอักษรตัวแรกของคอลัมน์ข้อความ สามารถใช้คำสั่ง 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 ปกติ