MYSQL使用Limit限定更新行数

 

上下文:想要修改config表,将其中5607行的is_ok改为true。
 
想通过下面的sql语句实现
UPDATE channel_config set is_adam_pub=1 where channel_id in (select channel_id from channel_config limit 5607);
 
发现Mysql不能支持子句使用Limit,数据库会报错
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
 
网上找一方法,可以支持子串使用Limit
UPDATE channel_config set is_adam_pub=1 where channel_id in (select t.channel_id from (select channel_id from channel_config limit 5607)as t);
这样处理虽然能达到效果,但是执行很慢,用了15.815ms
 
转念一想,update是不是也有limit用法
UPDATE channel_config set is_adam_pub=1 LIMIT 5607;
 
 发现竟然成功了,而且就用了0.102ms
 
--end--

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值