Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chọn 5 hàng ngẫu nhiên từ 20 hàng gần nhất MySQL

Sử dụng subquery: trước lấy 20 hàng mới nhất (ORDER BY DESC LIMIT 20), sau đó ORDER BY RAND() LIMIT 5.

Tạo bảng:

mysql> create table DemoTable    -> (    -> ShippingDate datetime    -> ); Query OK, 0 rows affected (0.51 sec)

Chèn 29 bản ghi ngày tháng...

Hiển thị dữ liệu (29 hàng):

+---------------------+ | ShippingDate | +---------------------+ | 2019-01-01 00:00:00 | | 2019-01-03 00:00:00 | | ... | | 2019-05-18 00:00:00 | +---------------------+ 29 rows in set (0.00 sec)

Truy vấn lấy 5 hàng ngẫu nhiên từ 20 hàng gần nhất:

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

Kết quả

+---------------------+ | ShippingDate | +---------------------+ | 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 rows in set (0.04 sec)