根據特定名稱對記錄進行排序,並顯示其餘值(僅部分)的隨機 MySQL 查詢


為此,您可以將 ORDER BY RAND() 與 LIMIT 結合使用。我們先建立一個 -

mysql> create table DemoTable1426
   -> (
   -> FirstName varchar(20)
   -> );
Query OK, 0 rows affected (0.59 sec)

使用 insert 在表中插入一些記錄 -

mysql> insert into DemoTable1426 values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1426 values('Adam');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1426 values('Robert');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1426 values('David');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1426 values('Sam');
Query OK, 1 row affected (0.13 sec)

使用 select 從表中顯示所有記錄 -

mysql> select * from DemoTable1426;

這將產生以下輸出 -

+-----------+
| FirstName |
+-----------+
| John      |
| Adam      |
| Robert    |
| David     |
| Sam       |
+-----------+
5 rows in set (0.00 sec)

以下是用於對記錄進行排序,但修復特定名稱並顯示其餘(僅部分)隨機值 的查詢 -

mysql> select * from DemoTable1426 order by (FirstName='Robert') desc,RAND()
   -> limit 3;

這將產生以下輸出 -

+-----------+
| FirstName |
+-----------+
| Robert    |
| Adam      |
| David     |
+-----------+
3 rows in set (0.52 sec)

上次更新:2019 年 11 月 12 日

73 次瀏覽

開啟你的 事業

完成課程並獲得認證

開始
廣告