我想针对单列更新单列。但是我收到这个错误
操作数应包含1列
查询为
UPDATE installations ins SET ins.`ref_no` = ('28374310017257',
'28374210711610',
'28373411561301',
'28373410914000',
'28373410897300')
WHERE ins.`meter_msn` IN ('002998000588',
'002998000674',
'002999000616',
'002999000984',
'002999000710')
如何摆脱这个错误?
注意:
我不想多次使用查询来更新它们,我只想在一个查询中更新记录。
任何帮助将不胜感激。
答案 0 :(得分:3)
您可以使用CASE .. WHEN
为特定的ref_no
有条件地定义meter_msn
的更新值:
UPDATE installations ins
SET ins.`ref_no` = CASE ins.`meter_msn`
WHEN '002998000588' THEN '28374310017257'
WHEN '002998000674' THEN '28374210711610'
WHEN '002999000616' THEN '28373411561301'
WHEN '002999000984' THEN '28373410914000'
WHEN '002999000710' THEN '28373410897300'
END
WHERE ins.`meter_msn` IN ('002998000588',
'002998000674',
'002999000616',
'002999000984',
'002999000710')