MySQL查询来选择一个随机的行值(ID和名称)具有多次出现(名称)?

为此,使用RAND()随机记录和LIMIT 1仅获得一个值。但是,使用WHERE子句选择要重复的特定“名称”。

让我们首先创建一个表-

mysql> create table DemoTable
(
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(20)
);

使用插入命令在表中插入一些记录-

mysql> insert into DemoTable(Name) values('Chris');
mysql> insert into DemoTable(Name) values('Bob');
mysql> insert into DemoTable(Name) values('David');
mysql> insert into DemoTable(Name) values('Bob');
mysql> insert into DemoTable(Name) values('Bob');

使用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)