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

MySQL เลือกคำสั่งโดยทำหน้าที่เหมือนสตริง (ไม่ใช่ตัวเลข)?


คุณสามารถใช้ไวยากรณ์ต่อไปนี้ได้หากคอลัมน์ของคุณมีประเภทข้อมูล 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 วินาที)