group by 在mysql和oracle中的差异


select * from addressbook_organization where parent_unid='12345' group by unid;


同样一句话,在mysql里面是正确的,在oracle里面是错误的。
细看之后,发现mysql在对这句话的处理有别于其他数据。在其他数据库中,要求含有group by的查询语句中,select后必须跟聚合函数或者在group by中的字段。

mysql对于上面这句的处理,有时候可以让我们偷懒。
他会按照unid分组,但只返回最新插入的那里记录!换句话说:
比如有这样2条记录:
id 1,parent_unid '12345' ,unid '23456'
id 2,parent_unid '12345' ,unid '23456'

那么在应用上面那句查询时,mysql会返回id=2的那条记录,因为这条记录比id=1后插入数据库。而同样的在oracle中应用这句查询的话,oracle直接就报ORA-00979:不是GROUP BY表达式。同样的情况在sybase中也会报这个错误!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值