我有一个包含国家/地区名称的表格,ISO代码可以将其命名为country,另一个表格具有呼叫目的地名称,我们称之为前缀。我在前缀表中添加了一个名为“iso”的列来保存ISO代码。我需要更新prefix.iso,其中prefix.destination就像country.names
国家/地区名称是完整的国家/地区名称 国家/地区目的地具有国家/地区的名称以及本地提供商或城市的名称 例如:美国T-mobile,或澳大利亚橙色
我正在尝试这样的查询,但它没有完成工作
UPDATE `prefix`, `country` SET `prefix`.`iso` = `country`.`countrycode` WHERE `prefix`.`destination` LIKE CONCAT(`country`.`countrycode`,'%')
答案 0 :(得分:0)
这很好用。确保国家/地区表中的值符合预期。
mysql> USE test;
Database changed
mysql> CREATE TABLE country (id SERIAL, countrycode VARCHAR(2));
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE prefix (destination VARCHAR(8), iso VARCHAR(2));
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO country VALUES (1, "CA"), (2, "US");
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> INSERT INTO prefix VALUES ("Canada", ""), ("USA", "");
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> UPDATE prefix, country SET iso = countrycode WHERE destination LIKE CONCAT(countrycode,'%');
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> SELECT * FROM prefix;
+-------------+------+
| destination | iso |
+-------------+------+
| Canada | CA |
| USA | US |
+-------------+------+
2 rows in set (0.00 sec)