所以我有这样一个数据库:
id role name
1 admin A
2 admin B
3 admin C
4 admin D
5 user E
6 user F
7 user G
例如,现在我想查询得到随机的4行,其中至少有2个管理员角色和1个用户角色。有点像这样:
从表中选择*其中role=“admin”至少2个,role=“user”至少1个
所以我想要的是a,c,d,e或a,b,e,f,但不是a,b,c,d或a,e,f,g。
有没有这样的查询方法?谢谢。
2条答案
按热度按时间m3eecexj1#
您可以将两行用于admin,一行用于user排列在最上面:
这将为每个对象分配一个序列号
role
. 然后它在order by
检索你想要的号码。这是一把小提琴。
6yt4nkrj2#
你可以使用联合所有
这样地
(selectfrom mytable where role='admin'limit 2)union all(selectfrom mytable where role='user'limit 2)