Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何根据字段限制结果_Database_Mysql_Limit - Fatal编程技术网

Database 如何根据字段限制结果

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 但是,如果您正在另一个查询中查找子选择,则必须使用联接,并且不能限制此联接。因此,方法是首先选择用户,然后在每个用户的基础上为每个用户选

如何在基于字段的mysql数据库查询中使用“LIMIT”。只要考虑一个用户有10个电话号码,我想只得到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用户都希望有一种方法可以将多个子查询结果合并到一个主查询结果中,但不幸的是,没有这种可能性。。。