跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • mysql select 的查询问题
未分類
21 3 月 2020

mysql select 的查询问题

mysql select 的查询问题

資深大佬 : 6260628 29

搜了半天不知道搜什么关键字,请教一下各位 mysql 里面 select a,b from table group by a 这种语句,b 的取值逻辑是什么?

大佬有話說 (17)

  • 資深大佬 : gz911122

    这种 sql 在 5.6 以上是不允许的
    select 的条件需要在 group by 里面,或者用 max min 之类的函数包裹起来

  • 主 資深大佬 : 6260628

    @gz911122 我的 sql 版本是 5.6 以下,之前别的同事有按这个语法写过 sql,而且关联业务逻辑,所以请告知这个取数逻辑

  • 資深大佬 : kr380709959

    @6260628 你这个 b 是不做任何计算处理么?比如 count(b)或者是 sum(b=value)这样?

  • 資深大佬 : VictorJing94

    你加个聚合函数吧

  • 資深大佬 : xuanbg

    这种写法,这个 b 取到的是哪一行的 b 就是个玄学问题了……正确的写法是用 max(),min(),sum()这些函数去取出符合你预期的 b

  • 資深大佬 : 2379920898

    A 分组里面的 B,咋了?

  • 資深大佬 : skymei

    B 应该是匹配到的第一条吧,之前研究过,忘了…

  • 資深大佬 : raymanr

    感觉这个问题好像也没啥好研究的, 本身就是不规范的写法…

  • 主 資深大佬 : 6260628

    最主要的是贸然加了 max 或者 min 怕会影响查询逻辑,之前写这个代码的大哥已经离职了

  • 主 資深大佬 : 6260628

    引以为戒吧,哭了

  • 資深大佬 : siriussilen

    取到的是每个 group 下的第一行数据

  • 資深大佬 : siriussilen

    这个我前两天刚研究过 在 leetcode 上面的评测实验过

  • 資深大佬 : skymei

    https://dev.mysql.com/doc/refman/5.6/en/group-by-handling.html

  • 資深大佬 : skymei

    @skymei
    官方文档里面是这么描述的
    The server is free to choose any value from each group, so unless they are the same, the values chosen are nondeterministic.
    值不确定

  • 資深大佬 : glacer

    这种写法不符合 SQL 标准,属于 MySQL 引擎的自定义行为

  • 資深大佬 : hbolive

    B 取到的值取决于对应的 A,而 A 是返回的结果是 GROUP BY 结果集中第一条数据。。

  • 資深大佬 : littlewing

    any value,未定义行为,任何一个值都有可能,mysql 没有明确规定

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具