Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để chọn 5 hàng ngẫu nhiên từ 20 hàng gần đây nhất trong MySQL?


Đối với ngẫu nhiên, hãy sử dụng phương thức RAND (). Và đối với giới hạn số hàng, hãy sử dụng phương thức LIMIT ().

Đầu tiên chúng ta hãy tạo một bảng -

 mysql> tạo bảng DemoTable -> (-> ShippingDate datetime ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,51 giây) 

Chèn một số bản ghi vào bảng bằng lệnh chèn -

 mysql> chèn vào giá trị DemoTable ('2019-01-01'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào giá trị DemoTable ('2019-01-03'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào giá trị DemoTable ('2019-01-05'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,13 giây) mysql> chèn vào giá trị DemoTable ('2019-01-07'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào giá trị DemoTable ('2019-02-02'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào giá trị DemoTable ('2019-02-04'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào giá trị DemoTable ('2019-02-12'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,07 giây) mysql> chèn vào giá trị DemoTable ('2019-02-24'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào giá trị DemoTable ('2019-02-25'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào giá trị DemoTable ('2019-03-10 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,16 giây) mysql> chèn vào giá trị DemoTable (' 2019-03-11 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào giá trị DemoTable (' 2019-03 -12 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,10 giây) mysql> chèn vào giá trị DemoTable ('2019-03-14'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào giá trị DemoTable ('2019-03-16'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào giá trị DemoTable ('2019-03-18'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,18 giây) mysql> chèn vào giá trị DemoTable ('2019-03-20'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào giá trị DemoTable ('2019-03-25'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,16 giây) mysql> chèn vào giá trị DemoTable ('2019-03-28 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào giá trị DemoTable (' 2019-03-29 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,18 giây) mysql> chèn vào giá trị DemoTable (' 2019-04 -03 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,20 giây) mysql> chèn vào giá trị DemoTable (' 2019-04-03 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,13 giây) mysql> chèn vào giá trị DemoTable (' 2019 -04-04 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,14 giây) mysql> chèn vào giá trị DemoTable (' 2019-04-06 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,16 giây) mysql> chèn vào giá trị DemoTable ( '201 9-04-09 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào giá trị DemoTable (' 2019-05-01 '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,23 giây) mysql> chèn vào giá trị DemoTable ('2019-05-13'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,24 giây) mysql> chèn vào các giá trị DemoTable ('2019-05-15'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào Giá trị DemoTable ('2019-05-16'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,16 giây) mysql> chèn vào giá trị DemoTable ('2019-05-18'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,20 giây)  

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

 mysql> select * từ DemoTable; 

Đầu ra

Điều này sẽ tạo ra kết quả sau -

 + --------------------- + | Ngày vận chuyển | + --------------------- + | 2019-01-01 00:00:00 || 2019-01-03 00:00:00 || 2019-01-05 00:00:00 || 2019-01-07 00:00:00 || 2019-02-02 00:00:00 || 2019-02-04 00:00:00 || 2019-02-12 00:00:00 || 2019-02-24 00:00:00 || 2019-02-25 00:00:00 || 2019-03-10 00:00:00 || 2019-03-11 00:00:00 || 2019-03-12 00:00:00 || 2019-03-14 00:00:00 || 2019-03-16 00:00:00 || 2019-03-18 00:00:00 || 2019-03-20 00:00:00 || 2019-03-25 00:00:00 || 2019-03-28 00:00:00 || 2019-03-29 00:00:00 || 2019-04-03 00:00:00 || 2019-04-03 00:00:00 || 2019-04-04 00:00:00 || 2019-04-06 00:00:00 || 2019-04-09 00:00:00 || 2019-05-01 00:00:00 || 2019-05-13 00:00:00 || 2019-05-15 00:00:00 || 2019-05-16 00:00:00 || 2019-05-18 00:00:00 | + --------------------- + 29 hàng trong bộ (0,00 giây) 

Sau đây là truy vấn để chọn 5 hàng ngẫu nhiên từ 20 hàng gần đây nhất -

 mysql> select tbl1. * from (select * from DemoTable ORDER BY ShippingDate DESC LIMIT 20) as tbl1 -> ORDER BY RAND () LIMIT 5; 

Đầu ra

Điều này sẽ tạo ra kết quả sau -

 + --------------------- + | Ngày vận chuyển | + --------------------- + | 2019-03-14 00:00:00 || 2019-05-13 00:00:00 || 2019-03-25 00:00:00 || 2019-05-16 00:00:00 || 2019-03-10 00:00:00 | + --------------------- + 5 hàng trong bộ (0,04 giây)