Database 如何根据字段限制结果
如何在基于字段的mysql数据库查询中使用“LIMIT”。只要考虑一个用户有10个电话号码,我想只得到5个电话号码的用户。Database 如何根据字段限制结果,database,mysql,limit,Database,Mysql,Limit,如何在基于字段的mysql数据库查询中使用“LIMIT”。只要考虑一个用户有10个电话号码,我想只得到5个电话号码的用户。 我想每个用户只获得5个电话号码。不是只有5个结果来自数据库吗 Hmmm。。。你的最后一句话应该是一样的: SELECT phone_number FROM phone_numbers WHERE user_id = XX LIMIT 5 但是,如果您正在另一个查询中查找子选择,则必须使用联接,并且不能限制此联接。因此,方法是首先选择用户,然后在每个用户的基础上为每个用户选
我想每个用户只获得5个电话号码。不是只有5个结果来自数据库吗 Hmmm。。。你的最后一句话应该是一样的:
SELECT phone_number FROM phone_numbers WHERE user_id = XX LIMIT 5
但是,如果您正在另一个查询中查找子选择,则必须使用联接,并且不能限制此联接。因此,方法是首先选择用户,然后在每个用户的基础上为每个用户选择5个电话号码。您可以在分区上使用ROW_NUMBER。。Mysql模拟Augenfeind描述的情况,如果您加入并为每个用户选择不超过5个电话号码。 请参见此处了解逻辑: 这将类似于:
SELECT * FROM
users u JOIN
(
select l.user_id, l.phone, count(*) as num
from phones as l
left outer join phones as r
on l.user_id = r.user_id
and l.phone >= r.phone
group by l.user_id, l.phone
) p
ON u.user_id=p.user_id AND p.num<=5
希望这会有所帮助。也许大多数SQL用户都希望有一种方法可以将多个子查询结果合并到一个主查询结果中,但不幸的是,没有这种可能性。。。