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

สั่งซื้อบันทึก MySQL แบบสุ่มและแสดงชื่อในลำดับจากน้อยไปมาก


คุณสามารถใช้แบบสอบถามย่อยเพื่อสั่งซื้อแบบสุ่มและแสดงชื่อในลำดับจากด้านล่าง rand() ถูกใช้สำหรับการสุ่ม ในขณะที่ ORDER BY ถูกใช้เพื่อแสดงเรกคอร์ดชื่อในลำดับจากน้อยไปมาก ไวยากรณ์มีดังนี้ −

select *from( select *from yourTableName order by rand() จำกัด anyIntegerValue;) anyVariableNameorder by yourColumnName;

เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างตาราง เรามีรหัสขายเป็นชื่อซึ่งเราต้องการในลำดับจากน้อยไปมาก แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง OrderByRandName −> ( −> Id int, −> Name varchar(100) −> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.96 วินาที)

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

mysql> แทรกลงในค่า OrderByRandName (100,'John');Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า OrderByRandName (101,'Bob');Query OK, 1 แถวได้รับผลกระทบ (0.11 วินาที) )mysql> แทรกลงในค่า OrderByRandName (102,'Johnson'); Query OK, 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงในค่า OrderByRandName (103,'David'); Query OK, 1 แถวได้รับผลกระทบ (0.22 วินาที)mysql> แทรกลงในค่า OrderByRandName (104, 'Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า OrderByRandName (105, 'Taylor'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรก ลงในค่า OrderByRandName (106, 'Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า OrderByRandName (107, 'Robert'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงใน OrderByRandName values(108,'Michael');Query OK, 1 แถวได้รับผลกระทบ (0.16 วินาที)mysql> แทรกลงใน OrderByRandName ค่า (109,'Mark');Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)

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

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

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

<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+---------+| 100 | จอห์น || 101 | บ๊อบ || 102 | จอห์นสัน || 103 | เดวิด || 104 | สมิธ || 105 | เทย์เลอร์ || 106 | แซม || 107 | โรเบิร์ต || 108 | ไมเคิล || 109 | ทำเครื่องหมาย |+------+---------+10 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามที่เรียงลำดับโดย rand() และชื่อที่แสดงในลำดับจากน้อยไปมาก -

mysql> เลือก *จาก −> ( −> เลือก *จาก OrderByRandName เรียงลำดับตาม rand() ขีดจำกัด 10 −> )tbl1 −> เรียงตามชื่อ;

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

<ก่อนหน้า>+------+---------+| รหัส | ชื่อ |+------+---------+| 101 | บ๊อบ || 103 | เดวิด || 100 | จอห์น || 102 | จอห์นสัน || 109 | มาร์ค || 108 | ไมเคิล || 107 | โรเบิร์ต || 106 | แซม || 104 | สมิธ || 105 | Taylor |+------+---------+10 แถวในชุด (0.39 วินาที)