我试图了解如何用不同的值更新多行,但我只是不明白。解决方案无处不在,但对我来说似乎很难理解。
例如,1 个查询中有 3 个更新:
UPDATE table_users
SET cod_user = '622057'
, date = '12082014'
WHERE user_rol = 'student'
AND cod_office = '17389551';
UPDATE table_users
SET cod_user = '2913659'
, date = '12082014'
WHERE user_rol = 'assistant'
AND cod_office = '17389551';
UPDATE table_users
SET cod_user = '6160230'
, date = '12082014'
WHERE user_rol = 'admin'
AND cod_office = '17389551';
I read https://web.archive.org/web/20161027063005/http://www.karlrixon.co.uk/writing/update-multiple-rows-with-different-values-and-a-single-sql-query/一个例子,但我真的不明白如何进行查询。 IE:
UPDATE table_to_update
SET cod_user= IF(cod_office = '17389551','622057','2913659','6160230')
,date = IF(cod_office = '17389551','12082014')
WHERE ?? IN (??) ;
我不完全清楚如果 WHERE 和 IF 条件中有多个条件如何进行查询..有什么想法吗?
你可以这样做:
UPDATE table_users
SET cod_user = (case when user_role = 'student' then '622057'
when user_role = 'assistant' then '2913659'
when user_role = 'admin' then '6160230'
end),
date = '12082014'
WHERE user_role in ('student', 'assistant', 'admin') AND
cod_office = '17389551';
我不明白你的日期格式。日期应使用本机日期和时间类型存储在数据库中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)