全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 496|回复: 9

求个sql语句

[复制链接]
发表于 2021-10-10 13:00:01 | 显示全部楼层 |阅读模式
本帖最后由 kangsgo 于 2021-10-10 13:40 编辑

sql update where set 字段相同,这个要怎么写呢
原:
UPDATE a=1 FROM table WHERE a=2;


改为了
UPDATE table SET  a=1 WHERE a=2;
还是不行额

我这么写执行不了


找到原因了,是数据库问题,解决了,谢谢各位
发表于 2021-10-10 13:03:33 | 显示全部楼层
UPDATE table SET a=1 WHERE a=2;
 楼主| 发表于 2021-10-10 13:05:12 | 显示全部楼层
华为任正非 发表于 2021-10-10 13:03
UPDATE table SET a=1 WHERE a=2;

就是这么写的,好像有问题呢,上面我写错了,不好意思
发表于 2021-10-10 13:11:33 | 显示全部楼层
kangsgo 发表于 2021-10-10 13:05
就是这么写的,好像有问题呢,上面我写错了,不好意思

应该没错啊,那你修改的值是不是纯数字?
如果不是纯数字要加双引号,比如:
UPDATE table SET a="abc" WHERE a="xyz";
 楼主| 发表于 2021-10-10 13:18:31 | 显示全部楼层
华为任正非 发表于 2021-10-10 13:11
应该没错啊,那你修改的值是不是纯数字?
如果不是纯数字要加双引号,比如:
UPDATE table SET a="abc" W ...

我在想是不是因为选择条件和设置内容都是一样的字段,所以没法知道先后?
发表于 2021-10-10 13:19:59 | 显示全部楼层
最的方法是看报错
 楼主| 发表于 2021-10-10 13:20:31 | 显示全部楼层
injy 发表于 2021-10-10 13:19
最的方法是看报错

主要是没有报错,直接超时
1205 - Lock wait timeout exceeded; try restarting transaction

时间: 50.634s
发表于 2021-10-10 13:25:53 来自手机 | 显示全部楼层
这不是语句的问题啊
发表于 2021-10-10 13:25:58 | 显示全部楼层
表里是不是数据太多 执行时间超时了
还有一个办法,但是你先备份下再操作
建议你可以添加一列b,全部设置值为2
删除列a
将列b改名为a
完成
 楼主| 发表于 2021-10-10 13:29:54 | 显示全部楼层

是表太大了,锁加不上,有办法么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-24 02:04 , Processed in 0.060339 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表