Mysql 限制基于列值group而不是group by接收的结果数
下面是我查询的当前输出:从mytable中选择vans、icollaborate_id 现在我想生成一个返回相同输出但有限制的结果。 例如,如果用户指定limit=2,则输出应如下所示: 限制为2的预期输出 限制为3的预期输出Mysql 限制基于列值group而不是group by接收的结果数,mysql,Mysql,下面是我查询的当前输出:从mytable中选择vans、icollaborate_id 现在我想生成一个返回相同输出但有限制的结果。 例如,如果用户指定limit=2,则输出应如下所示: 限制为2的预期输出 限制为3的预期输出 请告知。您可以使用不同的查询 从表名称中选择不同的icollaborate_id,其中icollaborate_id='10' 您可以使用不同的查询 从表名称中选择不同的icollaborate_id,其中icollaborate_id='10' 这个版本的MySQL还不
请告知。您可以使用不同的查询
从表名称中选择不同的icollaborate_id,其中icollaborate_id='10' 您可以使用不同的查询 从表名称中选择不同的icollaborate_id,其中icollaborate_id='10' 这个版本的MySQL还不支持“LIMIT&IN/ALL/ANY/SOME子查询” 我下面的回答是无效的,多亏戈登·林诺夫指出了这一点 我相信,如果您只需要一个查询,您需要的是:
SELECT
vans, icollaborate_id
FROM
mytable
WHERE icollaborate_id in
(
SELECT distinct t2.icollaborate_id FROM mytable t2
ORDER BY t2.icollaborate_id LIMIT YOUR_LIMIT
)
subselect确定应该查看多少个不同的值,然后主查询选择包含这些值的所有行。
此查询可能非常无效,您可能需要仔细考虑。此版本的MySQL尚不支持“LIMIT&IN/ALL/ANY/SOME子查询”
我下面的回答是无效的,多亏戈登·林诺夫指出了这一点
我相信,如果您只需要一个查询,您需要的是:
SELECT
vans, icollaborate_id
FROM
mytable
WHERE icollaborate_id in
(
SELECT distinct t2.icollaborate_id FROM mytable t2
ORDER BY t2.icollaborate_id LIMIT YOUR_LIMIT
)
subselect确定应该查看多少个不同的值,然后主查询选择包含这些值的所有行。
此查询可能非常无效,您可能需要仔细考虑。您可以通过连接来完成此操作:
编辑:
顺便说一下,以下查询可能满足您的要求:
select icollaborate_id, group_concat(vans)
from t
group by icollaborate_id
limit 3;
这会将所有货车放在逗号分隔的列表中的一行上。您可以通过连接:
编辑:
顺便说一下,以下查询可能满足您的要求:
select icollaborate_id, group_concat(vans)
from t
group by icollaborate_id
limit 3;
这会将所有货车放在逗号分隔的列表中的一行上。试试这个
从表_名称中选择货车,从表_名称中选择icollaborate_id,其中从表_名称限制3中选择不同的icollaborate_id中选择icollaborate_id作为t;
试试这个
从表_名称中选择货车,从表_名称中选择icollaborate_id,其中从表_名称限制3中选择不同的icollaborate_id中选择icollaborate_id作为t;
你能提供一些样本结果来说明你想要什么吗?我需要将一组icollaborate_id计数为1记录示例10是一个计数11是第二个计数你能提供一些样本结果来说明你想要什么吗?我需要将一组icollaborate_id计数为1记录示例10是一个计数11是第二个计数oops,在MySQL中使用的子查询中不能有限制。Ooops,在MySQL中使用的子查询中不能有限制。谢谢你的回答,它对我非常有用。谢谢你的回答,它对我非常有用。
SELECT vans, icollaborate_id
FROM t join
(select distinct icollaborate_id
from t
order by icollaborate_id
limit 3
) tokeep
on t.icollaborate_id = tokeep.icollaborate_id
order by icollaborate_id;
select icollaborate_id, group_concat(vans)
from t
group by icollaborate_id
limit 3;