我有以下查询并想要优化它。这可能是多达 300 次或更多的数据库访问。
update evtentries
set ro = '1',
ediv = 'A'
where
entid = '1234' and ID = '10024'
update evtentries
set ro = '2',
ediv = 'B'
where
entid = '5678' and ID = '10024'
我找到了一些有关用例的信息,但不确定如何将其与每个字段上的 2 个字段合并。
update evtentries
set ro = CASE WHEN entid = '1234' THEN '1'
WHEN entid = '5678' THEN '2'
ELSE ro
END
, ediv = 'A' <---- need to update with the case
WHERE entid IN ('1234', '5678') and ID = '10024'
如何使用 case 或添加此 case 查询的 ediv 字段部分?
第二列的操作与第一列完全相同。
update evtentries
set ro = CASE entid
WHEN '1234' THEN '1'
WHEN '5678' THEN '2'
ELSE ro
END,
ediv = CASE entid
WHEN '1234' THEN 'A'
WHEN '5678' THEN 'B'
ELSE ediv
END
WHERE entid IN ('1234', '5678') and ID = '10024'