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

การเรียงลำดับฟิลด์ varchar เป็นตัวเลขใน MySQL?


'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 วินาที)

ในข้างต้น ผลลัพธ์จะถูกเรียงลำดับจากน้อยไปมาก