6
votes

MySQL: Split colonne en deux

J'ai une table avec des lignes comme ceci: xxx

Je voudrais modifier cela à: xxx

y a-t-il un Un moyen facile de faire cela?


2 commentaires

Vous aurez besoin de vous assurer que vos colonnes ont des noms uniques, d'abord.


Est-ce que je suggère de quoi je suggère une meilleure approche que si je le laisse, comme cela est une question de fait comme comme "nous.%"?


3 Réponses :


1
votes

First Ajouter une colonne Numéro à la table.

Ensuite, si toutes les entrées dans le pays.Number a un "". Délimètre du "US" et "#" Vous allez facilement aller chercher toutes les lignes de la table et itérale sur chaque rangée.

sur chaque ligne que vous pouvez utiliser exploser () fonction par exemple (d'autres existent) pour diviser le champ de pays en 2 pièces, «US» et «#», puis effectuez un insert.


0 commentaires

13
votes
  1. Utilisez Alter Table - Ajouter une nouvelle colonne . li>
  2. Numéro de mise à jour colonne + pays.number: Utilisez Substring_index LI>

    Query: P>

    UPDATE TABLE SET Number = SUBSTRING_INDEX('Country.Number', '.', -1),
    Country.Number = SUBSTRING_INDEX('Country.Number', '.', 1);
    

0 commentaires

-1
votes

Après avoir changé votre table Shema, vous pouvez utiliser cette requête pour le remplir avec des données:

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)


1 commentaires

Il n'y a pas de fonction exploser dans mysql?