选择具有多个重复(名称)的随机行值(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

开启您的 职业生涯

完成课程取得资格认证

开始使用
广告