MySQL查询来选择一个随机的行值(ID和名称)具有多次出现(名称)?
为此,使用RAND()
随机记录和LIMIT1仅获得一个值。但是,使用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)