23 mysql
任何人都可以告诉我如何解决这个问题吗?
update ae44
set Price = Case
when ID = 'AT259793380' then '500'
when ID = 'AT271729590' then '600'
when ID = 'AT275981020' then '700'
end case
Run Code Online (Sandbox Code Playgroud)
我只想通过匹配ID来基于ID批量更新上市价格.
Qua*_*noi 36
UPDATE ae44
SET price =
CASE
WHEN ID = 'AT259793380' THEN
'500'
WHEN ID = 'AT271729590' THEN
'600'
WHEN ID = 'AT275981020' THEN
'700'
END
Run Code Online (Sandbox Code Playgroud)
注意,此查询将更新具有其他ID的记录的价格NULL.
如果您只想更新列表中的ID,请使用以下命令:
UPDATE ae44
JOIN (
SELECT 'AT259793380' AS oldval, '500' AS newval
UNION ALL
SELECT 'AT271729590' AS oldval, '600' AS newval
UNION ALL
SELECT 'AT275981020' AS oldval, '700' AS newval
) q
ON ae44.id = q.oldval
SET price = q.newval
Run Code Online (Sandbox Code Playgroud)
小智 26
UPDATE ae44 SET
Price = CASE
WHEN ID = 'AT259793380' THEN '500'
WHEN ID = 'AT271729590' THEN '600'
WHEN ID = 'AT275981020' THEN '700'
ELSE Price END
Run Code Online (Sandbox Code Playgroud)
或者您可以使用WHERE:
UPDATE ae44 SET
Price = CASE
WHEN ID = 'AT259793380' THEN '500'
WHEN ID = 'AT271729590' THEN '600'
WHEN ID = 'AT275981020' THEN '700'
END
WHERE
ID IN ('AT259793380', 'AT271729590', 'AT275981020')
Run Code Online (Sandbox Code Playgroud)
设置LIMIT也是个好主意:
UPDATE ae44 SET
Price = CASE
WHEN ID = 'AT259793380' THEN '500'
WHEN ID = 'AT271729590' THEN '600'
WHEN ID = 'AT275981020' THEN '700'
END
WHERE
ID IN ('AT259793380', 'AT271729590', 'AT275981020')
LIMIT 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26567 次 |
| 最近记录: |