首页 > 解决方案 > 根据一个查询中的另一个字段将多行新字段设置为特定值

问题描述

我正在向我的CountryCodes表中添加一个新列,phoneCodes. 我想根据numericCode表中已经存在的添加每个国家/地区的电话代码。有没有办法在不为每个国家/地区做 SET 的情况下做到这一点?这样做似乎效率低下:

UPDATE TABLE `CountryCodes`
SET `phoneCode` = 1
WHERE `numericCode = 840
...
/* Do this for each country?*/

标签: mysqlsqlmariadb

解决方案


您可以使用case表达式:

update table countrycodes
    set phonecode = (case when numericCode = 840 then 1
                          . . .
                     end)
    where numericCode in (840, . . .);

推荐阅读