首页 > 代码库 > 一个SQL update语句
一个SQL update语句
需要每隔一段时间选取最老的商户更新时间戳:
update DP_Shop set DP_Shop.LastDate = now() where DP_Shop.ShopId in (select ShopId from DP_Shop order by LastDate limit 5);
ERROR 1235 (42000): This version of MySQL doesn‘t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery‘
多加一层:
update DP_Shop set DP_Shop.LastDate = now() where DP_Shop.ShopId in (select t.ShopId from (select ShopId from DP_Shop order by LastDate limit 5) as t);
可以work,但不高效,考虑下怎么优化。
最后是用临时表:
start transaction;
create temporary table tmp1986 (select ShopId from DP_Shop order by LastDate limit 1000);
update DP_Shop inner join tmp1986 on DP_Shop.ShopId = tmp1986.ShopId set LastDate = now();
DROP TABLE tmp1986;
commit;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。