我有一个像这样的行的表:
| Country.Number | Country |
| US.01 | USA |
| US.02 | USA |
我想将其修改为:
| Country | Number | Country |
| US | 01 | USA |
| US | 02 | USA |
有一种简单的方法吗?
答案 0 :(得分:11)
查询:
UPDATE TABLE SET Number = SUBSTRING_INDEX('Country.Number', '.', -1),
Country.Number = SUBSTRING_INDEX('Country.Number', '.', 1);
答案 1 :(得分:1)
首先将数字列添加到表中。
然后,如果Country.Number中的所有条目都有“。”将“US”和“#”分开,您可以轻松地从表中获取所有行并迭代每一行。
在每一行上,您可以使用explode()函数(例如存在其他行)将Country字段拆分为2个部分,“US”和“#”,然后执行插入操作。
答案 2 :(得分:-1)
更改表格后,您可以使用此查询填充数据:
INSERT INTO table_with_new_scheme (
SELECT
explode('.', Country.Number)[0] as CountryAbbreviation,
explode('.', Country.Number)[1] as Number,
Country
FROM table_with_old_schema)