我有行像這樣的表:MySQL的:拆柱分爲兩個
| Country.Number | Country |
| US.01 | USA |
| US.02 | USA |
我想修改該到:
| Country | Number | Country |
| US | 01 | USA |
| US | 02 | USA |
是否有一個簡單的方法來做到這一點?
我有行像這樣的表:MySQL的:拆柱分爲兩個
| Country.Number | Country |
| US.01 | USA |
| US.02 | USA |
我想修改該到:
| Country | Number | Country |
| US | 01 | USA |
| US | 02 | USA |
是否有一個簡單的方法來做到這一點?
查詢:
UPDATE TABLE SET Number = SUBSTRING_INDEX('Country.Number', '.', -1),
Country.Number = SUBSTRING_INDEX('Country.Number', '.', 1);
首先將數字列添加到表中。
然後如果Country.Number中的所有條目都有「。」如果使用「US」和「#」分隔符,您可以輕鬆地從表中獲取所有行並遍歷每行。
在每一行上,您都可以使用explode()函數(其他存在的)將Country字段分成兩部分,「US」和「#」,然後執行插入操作。
更改表格shema後,可以使用此查詢填充數據:
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)
MySQL中沒有爆炸函數嗎? – CodeBrauer 2017-08-03 09:09:17
您需要確保您的列首先有唯一的名稱。 – Martijn 2010-08-26 14:15:27
正在做我認爲比如果像「US。%」這樣的查詢離開它的更好方法? – NinjaCat 2010-08-26 15:17:25