2013-05-14 2 views
1

J'ai une table mysql (dans AWS RDS) avec les champs F1, F2 et F3. F1 a des chaînes comme 'abc-def'. Ce que je dois faire est de diviser les valeurs F1 par trait d'union en deux chaînes ('abc' et 'def') et de les stocker dans F2 et F3 dans la même rangée.scinder une chaîne dans un champ de table mysql et la stocker dans deux champs

le disque avant de changer:

F1: abc-def 
F2: 
F3: 

le disque après avoir changé:

F1: abc-def 
F2: abc 
F3: def 

Il semble que MySQL ne supporte regexp mais référence pas. Mon dernier recours serait d'utiliser mysqldump mais je veux voir s'il y a un moyen de le faire directement dans mysql.

Toute réponse est appréciée!

+0

duplication possible de [Pouvez-vous diviser/exploser un champ dans une requête MySQL?] (Http://stackoverflow.com/questions/471914/can-you-split-explode-a-field-in-a-mysql -query) –

Répondre

-1

Essayez d'utiliser la fonction au exploser trait d'union comme ça ...

$exploded = explode('-', 'abc-def'); 

il mettra abc et def dans un tableau, vous pouvez les stocker dans les endroits correspondants

f2 = $exploded[0]; <-- meaning abc 
f3 = $exploded[1]; <-- meaning def 
+0

Il n'a jamais mentionné PHP ... En fait, il dit spécifiquement qu'il veut utiliser MySQL directement. –

+0

ouais je dois faire cela dans mysql CLI – pdgetrf

+0

Ensuite, vous avez clairement pas lu le manuel MySQL ... http://dev.mysql.com/doc/refman/5.1/fr/string-functions.html –

0

Il est un autre article qui traite de cela en utilisant des virgules comme séparateur trouvé à Can Mysql Split a column?. Faites simplement une procédure de mise à jour en définissant les deux colonnes sur les résultats substring_index.

Questions connexes