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

แบบสอบถาม MySQL เพื่อเลือกค่าแถวสุ่ม (Id และ Name) ที่มีหลายรายการ (ชื่อ)?


สำหรับสิ่งนี้ ให้ใช้ RAND() สำหรับบันทึกแบบสุ่มและ LIMIT 1 เพื่อให้ได้ค่าเดียว อย่างไรก็ตาม ใช้คำสั่ง WHERE เพื่อเลือก 'ชื่อ' นั้นซึ่งซ้ำกัน

ให้เราสร้างตารางก่อน -

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

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

mysql> แทรกลงในค่า DemoTable(Name) ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.11 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.14 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('Bob'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.08 วินาที)

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

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

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

<ก่อนหน้า>+----+-------+| รหัส | ชื่อ |+---+-------+| 1 | คริส || 2 | บ๊อบ || 3 | เดวิด || 4 | บ๊อบ || 5 | Bob |+----+-------+5 แถวในชุด (0.65 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อดึงค่าสุ่ม -

mysql> เลือก *จาก DemoTable โดยที่ Name='Bob' เรียงลำดับตาม rand() จำกัด 1;

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

<ก่อนหน้า>+---+------+| รหัส | ชื่อ |+----+------+| 5 | Bob |+----+------+1 แถวในชุด (0.00 วินาที)