在查询更新中是否可以执行SET IN
命令?
UPDATE table_a
SET status IN (A, B, C)
WHERE id IN (1, 2, 3)
我做了语法,但出现了错误:
关键字“ IN”附近的语法不正确。
答案 0 :(得分:2)
如果要在单个查询中基于ID进行多个更新
UPDATE table_a
SET status = CASE id
WHEN 1 THEN A
WHEN 2 THEN B
WHEN 3 THEN C
END
WHERE id IN (1,2,3)
我想这是您的要求,根据ID设置不同的状态
答案 1 :(得分:0)
您在下面的set子句上犯了错误,是正确的sql
UPDATE table_a
SET status='A'
WHERE id IN (1,2,3)
答案 2 :(得分:0)
您还可以使用此:
INSERT into table_a (id, status)
VALUES
(1, 'A'),
(2, 'B'),
(3, 'C')
ON DUPLICATE KEY UPDATE
status = VALUES(status);
答案 3 :(得分:0)
用例语句更新基于条件的值,例如“当id = 1时为case,当ID = 2时为'A',然后为'B',依此类推”。 例如 更新tab_a 在id = 1时设置status = case,然后在id = 2时设置'A',然后在id = 3时设置'B'然后'C'结束 (1,2,3)中的ID
如果要使用默认值1,2,3以外的其他值更新完整表 然后 更新tab_a 在id = 1时设置status = case,然后在id = 2时设置为“ A”,在id = 3时设置为“ B”,然后再设置“ C”,否则为“ Z”结束