การใช้ฟังก์ชัน CHAR_LENGTH() สำหรับการเรียงลำดับ
ใน MySQL คุณสามารถเรียงลำดับข้อมูลตามความยาวของสตริงได้โดยใช้ฟังก์ชัน CHAR_LENGTH() ซึ่งจะคืนค่าจำนวนตัวอักษร (ไม่ใช่จำนวนไบต์) รูปแบบคำสั่งคือ:
SELECT * FROM your_table_name
ORDER BY CHAR_LENGTH(your_column_name);
ตัวอย่างการใช้งานจริง
1. สร้างตารางหนังสือ
CREATE TABLE OrderByCharacterLength (
BookName VARCHAR(200)
);
2. เพิ่มข้อมูลหนังสือตัวอย่าง
INSERT INTO OrderByCharacterLength VALUES
('Let us C'),
('Introduction to C'),
('Data Structure And Algorithm in Java'),
('C in Depth'),
('Java Projects');
3. เรียงลำดับตามความยาวตัวอักษร
SELECT * FROM OrderByCharacterLength
ORDER BY CHAR_LENGTH(BookName);
ผลลัพธ์การเรียงลำดับ
| BookName | ความยาว |
|---|---|
| Let us C | 8 ตัวอักษร |
| C in Depth | 10 ตัวอักษร |
| Java Projects | 13 ตัวอักษร |
| Introduction to C | 17 ตัวอักษร |
| Data Structure And Algorithm in Java | 36 ตัวอักษร |
คำแนะนำเพิ่มเติม
- ใช้
ORDER BY CHAR_LENGTH(column) DESCสำหรับเรียงจากมากไปน้อย CHAR_LENGTH()นับตัวอักษร ส่วนLENGTH()นับไบต์ (ต่างกันใน UTF-8)- สามารถรวมกับเงื่อนไข WHERE ได้ตามปกติ
- ใช้ได้กับชนิดข้อมูล VARCHAR, TEXT, CHAR และอื่นๆ