在hibernate框架和mysql.oracle两种数据库兼容的项目中实现查询每个id最新更新的一条数据. 之前工作中一直用的mybatis+oracle数据库这种,一般写这类分组排序取每组最新一条数据的sql都是使用row_number() over()函数来实现 例如: select t1.* from ( select t.*, ROW_NUMBER() over(partition t.id order by t.update_time desc) as rn from tab…
删除重复行 DELETE FROM ecm_member_login_session WHERE (number , client_code) IN ( ) AND update_time NOT IN ( ); 但是报1093错误 :: ) ) Error Code: . You can't specify target table 'ecm_member_login_session' for update in FROM clause 0.046 sec 后来在 嵌套查询语句里面再嵌套一层即…
SELECT * FROM (SELECT * FROM TABLE_NAME ORDER BY COL1) WHERE ROWNUM = 1; 备注: 1.不能给 (SELECT * FROM TABLE_NAME ORDER BY COL1)加别名,会提示无效: 2.只能取第一行,取其他行取不了,比如ROWNUM = 2等就取不了: 3.据说数据量大了会存在效率问题. 以上备注有待研究…