update语句中条件限制是不能用sql in语句限制的吗

SQL UPDATE 语句
SQL UPDATE 语句
Update 语句
Update 语句用于修改表中的数据。
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
Xuanwumen 10
Champs-Elysees
更新某一行中的一个列
我们为 lastname 是 &Wilson& 的人添加 firstname:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
Xuanwumen 10
Champs-Elysees
更新某一行中的若干列
我们会修改地址(address),并添加城市名称(city):
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'
Xuanwumen 10
Zhongshan 23update时可以用where id in 吗_百度知道
update时可以用where id in 吗
我有更好的答案
可以。但是如果条件中是对本表进行过滤查询,则需要嵌套一层。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。mysql update 语句的问题_百度知道
mysql update 语句的问题
表结构 net_subnetinfo(subnetID int, int leaf, pSubnetID
subnetID 表主键
leaf 是否叶节点,pSubnetID
想通过sql将所有没有子节点的数据的leaf属性设置为1 sql及错误提示如下,
[SQL] update net_subnetinfo
我有更好的答案
复合语句中update和select不能操作同一个表,你可以创建一个临时表net_subnetinfo_temp,它里面的数据和net_subnetinfo数据一样:update net_subnetinfo
in ( SELECT
net_subnetinfo_temp)
采纳率:64%
来自团队:
不允许这样写。。可以换做update net_subnetinfo a, net_subnetinfo b set a.leaf = 1 where a.id = b.
为您推荐:
其他类似问题
mysql的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。关于update与in的语句
[问题点数:40分]
关于update与in的语句
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年1月 总版技术专家分月排行榜第二2013年12月 总版技术专家分月排行榜第二
2016年10月优秀小版主
2016年10月优秀大版主2016年8月论坛优秀版主2015年4月优秀版主2014年11月论坛优秀版主
2016年4月 荣获微软MVP称号2015年4月 荣获微软MVP称号2014年4月 荣获微软MVP称号2013年4月 荣获微软MVP称号2009年1月 荣获微软MVP称号2012年4月 荣获微软MVP称号2011年4月 荣获微软MVP称号2010年4月 荣获微软MVP称号
2016年10月优秀大版主2016年8月论坛优秀版主2015年4月优秀版主2014年11月论坛优秀版主
2016年4月 荣获微软MVP称号2015年4月 荣获微软MVP称号2014年4月 荣获微软MVP称号2013年4月 荣获微软MVP称号2009年1月 荣获微软MVP称号2012年4月 荣获微软MVP称号2011年4月 荣获微软MVP称号2010年4月 荣获微软MVP称号
2016年10月优秀大版主2016年8月论坛优秀版主2015年4月优秀版主2014年11月论坛优秀版主
2016年4月 荣获微软MVP称号2015年4月 荣获微软MVP称号2014年4月 荣获微软MVP称号2013年4月 荣获微软MVP称号2009年1月 荣获微软MVP称号2012年4月 荣获微软MVP称号2011年4月 荣获微软MVP称号2010年4月 荣获微软MVP称号
匿名用户不能发表回复!|查看: 5839|回复: 3
使用update语句10个,然后commit和使用一个update然后使用in条件,那个效率更好一些?
论坛徽章:0
现在有这个场景,客户需要批量审批10条信息,有以下两种方式:
update table set states=10 where id=1;
update table set states=10 where id=2;
update table set states=10 where id=3;
update table set states=10 where id=4;
update table set states=10 where id=5;
update table set states=10 where id=6;
update table set states=10 where id=7;
update table set states=10 where id=8;
update table set states=10 where id=9;
update table set states=10 where id=10;
update table set states=10 where id in (1,2,3,4,5,6,7,8,9,10);
注意,上面的id号不一定是连续的?各位看看哪种方式更优化点,个人觉得第二种方式更优化点
论坛徽章:74
我也觉得是第二种,第一种要解析语句多次,读表多次
论坛徽章:398
第2种如果id多,放在另一张表更好update table set states=10 where id in (select x from b)
论坛徽章:5
如果ID字段上没有索引,则应该是以FTS的方式执行。第一种方式会做多个FTS,而第种方式只需要一个FTS。
如果ID字段上有索引,并且数据量还算大,则第二中方式会以IN_LIST迭代的方式执行。
[ 本帖最后由 legendaryhefei 于
21:14 编辑 ]
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号

我要回帖

更多关于 sql语句in的用法限制 的文章

 

随机推荐