一个SQLupdate语句 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    需要每隔一段时间选取最老的商户更新时间戳:

    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,但不高效,考虑下怎么优化,

一个SQLupdate语句

电脑资料

一个SQLupdate语句》(https://www.unjs.com)。

    最后是用临时表:

    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;

最新文章