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

ดึงแถวสุ่มจากตารางด้วย MySQL


สำหรับสิ่งนี้ คุณสามารถใช้คำสั่ง PREPARE ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( FirstName varchar(100), CountryName varchar(100));Query OK, 0 แถวได้รับผลกระทบ (0.53 วินาที)

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

mysql> แทรกลงในค่า DemoTable ('Adam', 'US'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable ('Chris', 'AUS'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable ('Robert', 'UK'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.32 วินาที)

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

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

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

<ก่อนหน้า>+-----------+-------------+| ชื่อจริง | ชื่อประเทศ |+-----------+-------------+| อดัม | สหรัฐอเมริกา || คริส | AUS || โรเบิร์ต | สหราชอาณาจักร | +-----------+-------------+3 แถวในชุด (0.00 วินาที)

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

mysql> set @value :=ROUND((select count(*) from DemoTable) * rand());Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)mysql> set @query :=CONCAT('select *from DemoTable LIMIT ', @value , ', 1');Query OK, 0 แถวที่ได้รับผลกระทบ (0.00 วินาที)mysql> เตรียม myStatement จาก @query;Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)Statement preparemysql> ดำเนินการ myStatement;+-- ---------+-------------+| ชื่อจริง | ชื่อประเทศ |+-----------+-------------+| คริส | AUS |+-----------+-------------+1 แถวในชุด (0.00 วินาที) mysql> จัดสรรคืน เตรียม myStatement แบบสอบถามตกลง ได้รับผลกระทบ 0 แถว ( 0.00 วินาที)