'LPAD(lower(column_name))' ใช้เพื่อจัดเรียงฟิลด์ varchar ตามตัวเลขใน MySQL เรามาดูตัวอย่างกัน
ขั้นแรกเราจะสร้างตาราง คำสั่ง CREATE ใช้สำหรับสร้างตาราง
mysql> สร้างตาราง SortingvarcharDemo -> ( -> List varchar(10) -> );Query OK, 0 แถวได้รับผลกระทบ (0.82 วินาที)
บันทึกจะถูกแทรกด้วยความช่วยเหลือของคำสั่ง INSERT
mysql> แทรกลงในค่า SortingvarcharDemo ("99"); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า SortingvarcharDemo ("9"); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรก ลงในค่า SortingvarcharDemo ("199"); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า SortingvarcharDemo ("1"); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า SortingvarcharDemo ("999 "); ตกลงแบบสอบถาม 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า SortingvarcharDemo ("78"); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)
หากต้องการแสดงระเบียน ให้ใช้คำสั่ง select
mysql> เลือก *จาก SortingvarcharDemo;
นี่คือผลลัพธ์
<ก่อนหน้า>+------+| รายการ |+------+| 99 || 9 || 199 || 1 || 999 || 78 |+------+6 แถวในชุด (0.05 วินาที)ในผลลัพธ์ด้านบน รายการไม่มีการจัดลำดับ - ไม่เรียงลำดับจากน้อยไปมากหรือจากมากไปหาน้อย
ในการเรียงลำดับตัวเลขจากน้อยไปมากหรือมากไปหาน้อย ต่อไปนี้คือรูปแบบไวยากรณ์
SELECT * FROM yourTableName ORDER BY LPAD(lower(Column_name), value1,values2) asc;
ต่อไปนี้เป็นแบบสอบถาม
mysql> SELECT * FROM SortingvarcharDemo ORDER BY LPAD(lower(List), 6,0) asc;
นี่คือผลลัพธ์
<ก่อนหน้า>+------+| รายการ |+------+| 1 || 9 || 78 || 99 || 199 || 999 |+------+6 แถวในชุด (0.17 วินาที)ในข้างต้น ผลลัพธ์จะถูกเรียงลำดับจากน้อยไปมาก