2010-06-07 5 views

Répondre

1

D'abord, modifier le schéma pour ajouter les colonnes que vous voulez. Je suppose que vous savez comment faire cela. Ensuite, exécutez une requête de "mise à jour" qui divise les données.

mettre à jour mytable définir column1 = ..., column2 = ..., column3 = ...;

L'astuce consiste à formuler le "..." pour extraire les colonnes de droite de la colonne "source". Vous pourriez probablement faire quelque chose avec ltrim(), rtrim() et CASE (voir http://www.sqlite.org/lang_expr.html), mais vous pourriez avoir plus de facilité si vous définissiez une fonction définie par l'utilisateur, peut-être basée sur la longueur() et la sous-chaîne ().

+0

Et, bien sûr, une alternative est de sélectionner toutes les valeurs, exécuter une expression sed sur eux pour créer des instructions de mise à jour, puis exécutez le fichier de sortie en tant que commande SQL. Sélectionnez la source de la table> fichier sed -e "s/^ ([^:] *): ([^:] *): ([^:] *) \ $/mise à jour du jeu de table column1 = '\ \ 1 ', column2 =' \\ 2 ', column3 =' \\ 3 'où source =' \ $ '; " < file > nouveaufichier sqlite3

0

Si vous utilisez php, il va somehitng comme ceci:

PHP:

$explodedStr = explode(":", $delimitedStr); 

SQL:

"INSERT INTO tableName (column1, column2, column3) 
VALUES ('".$explodedStr[0]."','".$explodedStr[1]."', '".$explodedStr[2]." 
+0

vous souhaiteriez probablement une mise à jour, pas une insertion. –

Questions connexes