求解决,把多情况update合并成一个

jiaweiqq123 2014-11-11 03:32:47
UPDATE fscnetquery SET NetSts='9' WHERE NetResult='91公民身份号码与姓名一致,且存在照片' or NetResult='92公民身份号码与姓名一致,但不存在照片'
UPDATE fscnetquery SET NetSts='2' WHERE NetResult='21公民身份号码不存在' or NetResult='22公民身份号码存在,但与姓名不匹配'
UPDATE fscnetquery SET NetSts='1' WHERE NetResult='11身份证地区编码错误' or NetResult='12身份证生日不在有效范围' or NetResult='13身份证无效,不是合法的身份证号码'
把这三句合并成一句命令
...全文
188 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaweiqq123 2014-11-11
  • 打赏
  • 举报
回复
引用 4 楼 dsx001tz 的回复:
[quote=引用 2 楼 jiaweiqq123 的回复:] UPDATE fscnetquery SET NetSts=CASE WHEN NetResult='21公民身份号码不存在' or NetResult='22公民身份号码存在,但与姓名不匹配' THEN NetSts='0' WHEN NetResult='11身份证地区编码错误' or NetResult='12身份证生日不在有效范围' or NetResult='13身份证无效,不是合法的身份证号码' THEN NetSts='1' WHEN NetResult='91公民身份号码与姓名一致,且存在照片' or NetResult='92公民身份号码与姓名一致,但不存在照片' THEN NetSts='9' ELSE NetSts END 改成这样后,数据库提示我THEN NetSts后不能跟=,求大神解决
UPDATE fscnetquery SET NetSts=CASE WHEN NetResult in ('21公民身份号码不存在' ,'22公民身份号码存在,但与姓名不匹配') THEN  '0'  WHEN NetResult in ('11身份证地区编码错误','12身份证生日不在有效范围','13身份证无效,不是合法的身份证号码') THEN '1' WHEN NetResult in ('91公民身份号码与姓名一致,且存在照片' ,'92公民身份号码与姓名一致,但不存在照片') THEN '9' ELSE NetSts END 
[/quote]结贴 分都是你的啦
半瓶子酱油 2014-11-11
  • 打赏
  • 举报
回复
引用 2 楼 jiaweiqq123 的回复:
UPDATE fscnetquery SET NetSts=CASE WHEN NetResult='21公民身份号码不存在' or NetResult='22公民身份号码存在,但与姓名不匹配' THEN NetSts='0' WHEN NetResult='11身份证地区编码错误' or NetResult='12身份证生日不在有效范围' or NetResult='13身份证无效,不是合法的身份证号码' THEN NetSts='1' WHEN NetResult='91公民身份号码与姓名一致,且存在照片' or NetResult='92公民身份号码与姓名一致,但不存在照片' THEN NetSts='9' ELSE NetSts END 改成这样后,数据库提示我THEN NetSts后不能跟=,求大神解决
UPDATE fscnetquery SET NetSts=CASE WHEN NetResult in ('21公民身份号码不存在' ,'22公民身份号码存在,但与姓名不匹配') THEN  '0'  WHEN NetResult in ('11身份证地区编码错误','12身份证生日不在有效范围','13身份证无效,不是合法的身份证号码') THEN '1' WHEN NetResult in ('91公民身份号码与姓名一致,且存在照片' ,'92公民身份号码与姓名一致,但不存在照片') THEN '9' ELSE NetSts END 
jiaweiqq123 2014-11-11
  • 打赏
  • 举报
回复
首先你要搞清楚case when的用法 case when最终得到的结果是一个值,而不是多个值,更不是赋值。你写的就是赋值了。 你是要更新么? update 表 set b = (case A when 1 then 1 else 0 end), c = (case A when 1 then 0 else 1 end) 我自己给自己解决算了
jiaweiqq123 2014-11-11
  • 打赏
  • 举报
回复
UPDATE fscnetquery SET NetSts=CASE WHEN NetResult='21公民身份号码不存在' or NetResult='22公民身份号码存在,但与姓名不匹配' THEN NetSts='0' WHEN NetResult='11身份证地区编码错误' or NetResult='12身份证生日不在有效范围' or NetResult='13身份证无效,不是合法的身份证号码' THEN NetSts='1' WHEN NetResult='91公民身份号码与姓名一致,且存在照片' or NetResult='92公民身份号码与姓名一致,但不存在照片' THEN NetSts='9' ELSE NetSts END 改成这样后,数据库提示我THEN NetSts后不能跟=,求大神解决
jiaweiqq123 2014-11-11
  • 打赏
  • 举报
回复
update test set name = case when id = 7 then 'LL1' when id = '8' else name end;

56,875

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧