繁体   English   中英

如何选择2个随机类别数据

[英]how to select 2 random category data

我的表结构如下(带有数据):

+------------------------------------+
|id    fname     category  city      |
|1     ram       cook      kathmandu |
|2     shyam     cook      lalitpur  |
|3     krishna   maid      patan     |
|4     jay       maid      kupondole |
|5     rajan     maid      ratnapark |
+------------------------------------+

该查询应立即返回2行(厨师和女仆),并随机返回厨师和女仆。 我怎样才能做到这一点?

两种选择:

(SELECT * FROM TableName WHERE category='cook' ORDER BY rand() limit 1)
UNION ALL
(SELECT * FROM TableName WHERE category='maid' ORDER BY rand() limit 1)

SQL Fiddle中查看结果。

要么

SELECT * FROM TableName 
WHERE category IN ('cook','maid') 
GROUP BY category 
ORDER BY rand() limit 2

SQL Fiddle中查看结果。

结果:

ID  FNAME   CATEGORY    CITY
1   ram     cook        kathmandu
5   rajan   maid        ratnapark
select fname
from table
where category="cook"
order by RAND()
LIMIT 1
UNION
select fname
from table
where category="maid"
order by RAND()
LIMIT 1

子查询负责查找随机ID

SELECT *
FROM mytable
WHERE id IN
    (SELECT round(rand()*(max(id)-min(id)+1))+min(id)
     FROM mytable
     GROUP BY category);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM