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

สุ่มเลือกแถวที่แตกต่างกันในตาราง MySQL หรือไม่


หากต้องการสุ่มเลือกแถว ให้ใช้ ORDER BY RAND() กับ LIMIT ใช้ DISTINCT สำหรับแถวที่แตกต่างกัน เรามาดูตัวอย่างและสร้างตารางกันก่อน −

mysql> สร้างตาราง DemoTable (รหัส int ไม่ใช่ NULL AUTO_INCREMENT คีย์หลัก ชื่อ varchar(40)); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.54 วินาที)

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

mysql> แทรกลงในค่า DemoTable(Name) ('John Doe'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('Chris Brown'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('Adam Smith'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('John Doe'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('John Doe'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('Chris Brown'); แบบสอบถาม ตกลง 1 แถวได้รับผลกระทบ (0.53 วินาที)mysql> แทรกลงในค่า DemoTable (ชื่อ) ('Adam Smith'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.12 วินาที)

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

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

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

<ก่อนหน้า>+----+-------------+| รหัส | ชื่อ |+----+-------------+| 1 | จอห์น โด || 2 | คริส บราวน์ || 3 | อดัม สมิธ || 4 | จอห์น โด || 5 | จอห์น โด || 6 | คริส บราวน์ || 7 | Adam Smith |+----+-------------+7 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อสุ่มเลือกแถวที่แตกต่างกันสองแถวในตาราง -

mysql> เลือกชื่อที่แตกต่างจากคำสั่ง DemoTable โดย rand() จำกัด 3;

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

<ก่อนหน้า>+-------------+| ชื่อ |+-------------+| คริส บราวน์ || จอห์น โด || Adam Smith |+-------------+3 แถวในชุด (0.00 วินาที)