写了一条语句update users set state=2 where id in(select id from users where id>100)这样更新的结果应该是只有一条记录才对
可它更新的是很多条数据select id from users where id>100这条语句查出的结果是101
谁能帮我解释一下啊
可它更新的是很多条数据select id from users where id>100这条语句查出的结果是101
谁能帮我解释一下啊
解决方案 »
- 如查询出前名称不重复,并且价格最低的数据?
- 分数不高,要求简单,但挑战你的极限select查询
- |zyciis| 查一个SQL排序问题,让符合条件的先排列出来
- 把一个表中多条记录,批量插入到库中的另一个表中,怎样实现啊!
- 用查询分析器来导入*.SQL文件,出现如下信息,什么意思?怎样修改?
- varchar和int大小比较问题
- SQL语句
- 请教一下这个触发器怎么写
- 在SQL Server有像PL/SQL Developer的可以生成sql语句的第三方工具吗?
- 疑難問題,急﹔如何把一條記錄轉換為多條記錄?
- 表,比如有十五列,我想查询这张表,查询条件是查询出至少每行有五列不为空的数据,where条件如何写
- update set select 的一个问题
结果有多少条就会更新多少条数据
select * from users where id in(select id from users where id>100)
update users set state=2 where id in(select id from users where id>100)更新了所有ID大于100的数据,当然是很多行,而不是你说的一行了!
我也按照上面的说了查了一下
select * from users where id in(select id from users where id>100)
确实是查出来很多条数据
可是那是不对的
(
我嵌套在里面的语句是一个多表查询,但是原理是一样的
)
我郁闷了一下午。
问题依旧
换个写法就是好的select * from users,(select id from users where id>100)t where user.id in (t.id)这样查出来的结果是正确的,但是我要做update怎么做啊?