日期:2014-05-17  浏览次数:20518 次

小菜初学SQL,有个小问题关于UPDATE的
假如我有此表:

  人名
姓 | 名
---------
刘 | 一手
---------
刘 | 

如果我执行:
update 人名 set 名=‘二手’where 姓=‘刘’
的话,表里的两个人是不是都会被我把名字改成二手?
如果我只想更改没有名字的那个人要怎么写?
sql

------解决方案--------------------
1.两个人都满足where条件,所以都会改成二手。
2.只改没名的,where条件改为;where 姓=‘刘’and 名='',如果名字段没有填写任何内容,where条件应该是where 姓=‘刘’and 名 is null
------解决方案--------------------
where 姓='刘' and 名 =''
------解决方案--------------------
初学SQL的UPDATE可以这样
不确定会不会UPDATE到别的行时,那么先用UPDATE的WHERE条件SELECT一下,看看查询出来的结果集是不是你设想UPDATE的行
比如你这个就是先执行SELECT * FROM 人名 WHERE 姓='刘'和SELECT * FROM 人名 WHERE 姓='刘' AND ISNULL(名,'')=''查询下然后再去UPDATE
------解决方案--------------------
UPDATE TB
SET 名='二手'
where 姓='刘' and isnull(名,'')=''