คุณสามารถใช้ไวยากรณ์ต่อไปนี้ได้หากคอลัมน์ของคุณมีประเภทข้อมูล varchar -
เลือก yourColumnName จาก yourTableName ORDER BY yourColumnName +0 DESC;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง selectOrderdemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(100), -> RankNumber varchar(100) -> );Query OK, 0 แถวได้รับผลกระทบ (0.55 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงใน selectOrderdemo(Name,RankNumber) values('Larry',-100);Query OK, 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงใน selectOrderdemo(Name,RankNumber) ค่า('John',50 );แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงใน selectOrderdemo (ชื่ออันดับอันดับ) ค่า ('Bob',0); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงใน selectOrderdemo (ชื่ออันดับอันดับ ) values('Carol',-110);Query OK, 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงใน selectOrderdemo(Name,RankNumber) values('David',98);Query OK, 1 แถวได้รับผลกระทบ (0.21 วินาที
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก selectOrderdemo;
นี่คือผลลัพธ์ -
<ก่อนหน้า>+----+-------+-----------+| รหัส | ชื่อ | อันดับ |+----+-------+-----------+| 1 | แลร์รี่ | -100 || 2 | จอห์น | 50 || 3 | บ๊อบ | 0 || 4 | แครอล | -110 || 5 | เดวิด | 98 |+----+-------+-----------+5 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อเลือกลำดับโดยทำหน้าที่เหมือนตัวเลข
กรณีที่ 1 − ถ้าคุณต้องการผลลัพธ์ในลำดับจากมากไปน้อย แบบสอบถามจะเป็นดังนี้ −
mysql> เลือก RankNumber จาก selectOrderdemo ORDER BY RankNumber+0 DESC;
นี่คือผลลัพธ์ -
<ก่อนหน้า>+-----------+| อันดับ |+--------------------+| 98 || 50 || 0 || -100 || -110 |+------------+5 แถวในชุด (0.00 วินาที)กรณีที่ 2 − ถ้าคุณต้องการผลลัพธ์ในลำดับจากน้อยไปมาก แบบสอบถามจะเป็นดังนี้ −
mysql> เลือก RankNumber จาก selectOrderdemo ORDER BY RankNumber+0;
นี่คือผลลัพธ์ -
<ก่อนหน้า>+-----------+| อันดับ |+--------------------+| -110 || -100 || 0 || 50 || 98 |+------------+5 แถวในชุด (0.00 วินาที)กรณีที่ 3 − ถ้าคุณต้องการคอลัมน์ทั้งหมด ให้ใช้แบบสอบถามด้านล่าง −
mysql> เลือก * จาก selectOrderdemo ORDER BY RankNumber+0 DESC;
นี่คือผลลัพธ์ -
<ก่อนหน้า>+----+-------+-----------+| รหัส | ชื่อ | อันดับ |+----+-------+-----------+| 5 | เดวิด | 98 || 2 | จอห์น | 50 || 3 | บ๊อบ | 0 || 1 | แลร์รี่ | -100 || 4 | แครอล | -110 |+----+-------+-----------+5 แถวในชุด (0.00 วินาที)