MySQL: divide la columna en dos

Tengo una tabla con filas como esta:

| Country.Number | Country | | US.01 | USA | | US.02 | USA | 

Me gustaría modificar esto para:

 | Country | Number | Country | | US | 01 | USA | | US | 02 | USA | 

¿Hay una forma fácil de hacer esto?

  1. use alter table – agrega una nueva columna.
  2. número de actualización column + Country.Number: use substring_index

Consulta:

 UPDATE TABLE SET Number = SUBSTRING_INDEX('Country.Number', '.', -1), Country.Number = SUBSTRING_INDEX('Country.Number', '.', 1); 
  1. cambiar la tabla cambiar el nombre de campo de Country.Number

Primero agregue la columna numérica a la tabla.

Entonces, si todas las inputs en Country.Number tienen un "." delimitando el "EE. UU." y "#", simplemente obtendrá todas las filas de la tabla e iterará sobre cada fila.

En cada fila puede usar la function de explosión () por ejemplo (existen otros) para dividir el campo País en 2 partes, "EE. UU." Y "#" y luego hacer una inserción.

Después de cambiar su tabla shema puede usar esta consulta para completarla con datos:

 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)