Tạo bảng tên
mysql> CREATE TABLE DemoTable1426 (FirstName VARCHAR(20));
INSERT INTO DemoTable1426 VALUES('John'),('Adam'),('Robert'),('David'),('Sam');
Dữ liệu
mysql> SELECT * FROM DemoTable1426;
+-----------+
| FirstName |
+-----------+
| John |
| Adam |
| Robert |
| David |
| Sam |
+-----------+
Truy vấn: ORDER BY (FirstName='Robert') DESC, RAND() LIMIT 3
mysql> SELECT * FROM DemoTable1426
-> ORDER BY (FirstName = 'Robert') DESC, RAND()
-> LIMIT 3;
Kết quả: Robert luôn đầu, 2 hàng khác ngẫu nhiên
+-----------+
| FirstName |
+-----------+
| Robert |
| Adam |
| David |
+-----------+
Giải thích: (FirstName = 'Robert') trả về 1 (true) cho Robert, 0 cho các hàng khác. DESC đặt 1 lên đầu. RAND() sắp xếp ngẫu nhiên cho các hàng cùng giá trị (0). LIMIT 3 lấy 3 hàng đầu.