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

MySQL ORDER BY ตัวอักษร (ไม่ใช่ตัวเลข) สำหรับค่าคอลัมน์ที่ประกอบด้วยสตริงที่มีตัวเลขเช่น '456 John Smith'


หากต้องการ ORDER BY ตัวอักษร ให้ใช้ ORDER BY SUBSTRING() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( Id varchar(100)); เคียวรีตกลง 0 แถวได้รับผลกระทบ (0.65 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('456 John Smith'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที) mysql> ลงในค่า DemoTable ('897 Adam Smith'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที )mysql> แทรกลงในค่า DemoTable ('1009 Bob Smith'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----------------+| รหัส |+----------------+| 456 จอห์น สมิธ || 897 อดัม สมิธ || 1009 Bob Smith |+----------------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อ ORDER BY ตัวอักษร -

mysql> เลือก *จากคำสั่ง DemoTable โดย SUBSTRING(Id,LOCATE(' ', Id));

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----------------+| รหัส |+----------------+| 897 อดัม สมิธ || 1009 บ๊อบ สมิธ || 456 John Smith |+----------------+3 แถวในชุด (0.05 วินาที)