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

จัดเรียงค่าบางอย่างไว้ด้านบนสุดใน MySQL หรือไม่


คุณต้องใช้คำสั่ง ORDER BY เพื่อจัดเรียง ไวยากรณ์มีดังนี้ −

เลือก *FROM yourTableName ORDER BY yourColumnName='yourValue' DESC,yourIdColumnName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง SortCertainValues ​​-> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(20), -> CountryName varchar(10), -> PRIMARY KEY(Id) -> );Query OK, 0 แถวที่ได้รับผลกระทบ (1.36 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงใน SortCertainValues(Name,CountryName) values('Adam','US');Query OK, 1 แถวได้รับผลกระทบ (0.35 วินาที)mysql> แทรกลงใน SortCertainValues(Name,CountryName) ค่า ('John', 'สหราชอาณาจักร');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.74 วินาที) mysql> แทรกลงในค่า SortCertainValues ​​(ชื่อประเทศ) ('Bob', 'US'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงใน SortCertainValues(Name,CountryName) values('Carol','Denmark');Query OK, 1 แถวได้รับผลกระทบ (0.32 วินาที)mysql> แทรกลงใน SortCertainValues ​​(Name, CountryName) ค่า ('Sam', 'US'); แบบสอบถามตกลง , 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงในค่า SortCertainValues ​​(ชื่อ, ชื่อประเทศ) ('David', 'France'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า SortCertainValues ​​(ชื่อ, ชื่อประเทศ) ('Maxwell', 'AUS'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.25 วินาที) mysql> แทรกลงในค่า SortCertainValues ​​(ชื่อประเทศ) ('Kevin', 'นิวซีแลนด์'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.29 วินาที )

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+---------+-------------+| รหัส | ชื่อ | CountryName |+----+---------+-------------+| 1 | อดัม | สหรัฐอเมริกา || 2 | จอห์น | สหราชอาณาจักร || 3 | บ๊อบ | สหรัฐอเมริกา || 4 | แครอล | เดนมาร์ก || 5 | แซม | สหรัฐอเมริกา || 6 | เดวิด | ฝรั่งเศส || 7 | แม็กซ์เวลล์ | AUS || 9 | เควิน | นิวซีแลนด์ |+----+---------+-------------+8 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อจัดเรียงค่าบางอย่างไปด้านบน เราได้ตั้งค่า CountryName US ไว้ที่ด้านบนสุด นั่นคือบันทึกทั้งหมดที่มี US CountryName -

mysql> เลือก *จาก SortCertainValues ​​เรียงลำดับตาม CountryName='US' DESC,Id;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+---------+-------------+| รหัส | ชื่อ | CountryName |+----+---------+-------------+| 1 | อดัม | สหรัฐอเมริกา || 3 | บ๊อบ | สหรัฐอเมริกา || 5 | แซม | สหรัฐอเมริกา || 2 | จอห์น | สหราชอาณาจักร || 4 | แครอล | เดนมาร์ก || 6 | เดวิด | ฝรั่งเศส || 7 | แม็กซ์เวลล์ | AUS || 9 | เควิน | นิวซีแลนด์ |+----+---------+-------------+8 แถวในชุด (0.00 วินาที)