[英]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.