選擇具有多個重複(名稱)的隨機行值(ID 和名稱)的 MySQL 查詢?


為此,將 RAND() 用於隨機記錄,使用 LIMIT 1 只獲取單個值。但是,使用 WHERE 子句選擇正在重複的特定“名稱”。

我們首先建立一個表 -

mysql> create table DemoTable
(
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(20)
);
Query OK, 0 rows affected (1.65 sec)

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

mysql> insert into DemoTable(Name) values('Chris');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(Name) values('Bob');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(Name) values('David');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable(Name) values('Bob');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(Name) values('Bob');
Query OK, 1 row affected (0.08 sec)

使用 select 語句顯示錶中的所有記錄 -

mysql> select *from DemoTable;

這將產生以下輸出 -

+----+-------+
| Id | Name  |
+----+-------+
|  1 | Chris |
|  2 | Bob   |
|  3 | David |
|  4 | Bob   |
|  5 | Bob   |
+----+-------+
5 rows in set (0.65 sec)

以下是獲取隨機值所需的查詢 -

mysql> select *from DemoTable where Name='Bob' order by rand() limit 1;

這將產生以下輸出 -

+----+------+
| Id | Name |
+----+------+
| 5  | Bob  |
+----+------+
1 row in set (0.00 sec)

更新於:2019-10-03

479

開啟您的 職業生涯

完成課程取得資格認證

開始使用
廣告
© . All rights reserved.