有一个表,该表有一个名为country的列,我需要在一个查询中更改该列的值,而不是在多个查询中。
在这个查询中,我将埃及的任何值都更改为1
UPDATE subscribers
SET country = 1 WHERE country = 'Egypt';
在这个查询中,我将卡塔尔的任何值都更改为2
UPDATE subscribers
SET country = 2 WHERE country = 'Qatar';
把这两个问题结合起来有什么帮助吗?
有一个表,该表有一个名为country的列,我需要在一个查询中更改该列的值,而不是在多个查询中。
在这个查询中,我将埃及的任何值都更改为1
UPDATE subscribers
SET country = 1 WHERE country = 'Egypt';
在这个查询中,我将卡塔尔的任何值都更改为2
UPDATE subscribers
SET country = 2 WHERE country = 'Qatar';
把这两个问题结合起来有什么帮助吗?
2条答案
按热度按时间jv2fixgn1#
你可以使用
case
mysql中的表达式:但是,我建议使用派生表:
hmtdttj42#
考虑:
现在想象一下为更多的国家做这个表达。而是连接到一个“Map”数据关联的表(国家名称的主表)。连接countryname字段并用“mapping”表中的id更新目标表countryname字段。转换为数字类型字段。或者安全起见,更新到另一个字段,当一切正常时,删除原来的字段。