是否可以选择MySQL从组返回的值? [英] Is it possible to select what values MySQL returns from a group?

查看:158
本文介绍了是否可以选择MySQL从组返回的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

GROUP BY 按组分组记录。所以一个组可以包含很多行,MySQL可以选择一些任意的行。以下是评论到一个问题:


mysql只是返回第一行。 - 也许这是它的工作原理但不能保证。该文件说:服务器可以自由选择每组中的任何值,因此除非它们相同,否则所选值是不确定的。。

是否可以显式选择MySQL应该返回的组中的哪些行?就像这个伪代码一样:

  SELECT * FROM`visits` GROUP BY`visitor_id` 
(但拾取ONLY THOSE`visits` WHERE`venue` = 3)


解决方案


是否可以显式选择MySQL应该返回的组的哪一行 s [plural]

不是,它没有意义,因为作为轴点
$ b


GROUP BY 子句生成一个


但是,可以选择哪些行从特定类别中撤回,对于某些条件(示例1 示例2 - 但这些查询通常不涉及 GROUP BY 子句,或重度扭曲其预期用法)。



对于您的示例,它看起来像所有你需要的是:

pre > SELECT * FROM visited
WHERE venue = 3
ORDER BY visitor_id


A GROUP BY organizes records in groups. So a group can contain many rows and MySQL picks some arbitrary row of them. Here is comment to a question:

"mysql just returns the first row." - maybe this is how it works but it is not guaranteed. The documentation says: "The server is free to choose any value from each group, so unless they are the same, the values chosen are indeterminate.".

Is it possible to explicitly select which rows of a group MySQL should return? Something like in this pseudo code:

SELECT * FROM `visits` GROUP BY `visitor_id` 
(BUT PICK UP ONLY THOSE `visits` WHERE `venue` = 3)

解决方案

Is it possible to explicitly select which rows [plural] of a group MySQL should return?

No it is not, and it does not make sense because, as axiac points out:

The GROUP BY clause generates one [single] record from each group.

It is, however, possible to select which rows to retreive from a given category, for some conditions (example 1, example 2 -- but such queries usually do not involve a GROUP BYclause, or heavily twist its intended usage).

For your example, it looks like all you need is:

SELECT * FROM visits
WHERE venue = 3
ORDER BY visitor_id

这篇关于是否可以选择MySQL从组返回的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆