首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

group by 在mysql跟oracle中的差异

2012-09-10 
group by 在mysql和oracle中的差异select * from addressbook_organization where parent_unid12345 gr

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中也会报这个错误!

热点排行