ใช้ ORDER BY LENGTH(column) DESC เพื่อจัดเรียงตามความยาวสตริง (จำนวนไบต์)
ไวยากรณ์
SELECT * FROM yourTableName ORDER BY LENGTH(yourColumnName) DESC;
ตัวอย่างการใช้งาน
1. สร้างตารางและข้อมูล
mysql> create table DemoTable (Name varchar(100));
mysql> insert into DemoTable values('John'), ('Robert'), ('Bob'), ('David');
2. จัดเรียงตามความยาวมากไปน้อย
mysql> select * from DemoTable order by LENGTH(Name) DESC;
ผลลัพธ์
+--------+ | Name | +--------+ | Robert | | David | | John | | Bob | +--------+
ฟังก์ชันความยาวสตริงใน MySQL
| ฟังก์ชัน | คืนค่า | หมายเหตุ |
|---|---|---|
LENGTH() | จำนวน ไบต์ | UTF-8 ตัวไทย = 3 ไบต์ |
CHAR_LENGTH() | จำนวน ตัวอักษร | แนะนำสำหรับข้อความหลายภาษา |
CHARACTER_LENGTH() | เหมือน CHAR_LENGTH() | Synonym |
ตัวอย่าง: จัดเรียงตามจำนวนตัวอักษร (ไม่ใช่ไบต์)
SELECT * FROM DemoTable ORDER BY CHAR_LENGTH(Name) DESC;