2015-04-10 3 views
-1

J'ai une colonne mySQL appelée description et j'ai plusieurs phrases dans cette colonne. Par exemple: "John a couru sur une colline, il était fatigué, John est allé chercher de l'eau." Je voudrais un saut de ligne après chaque phrase pour qu'elle soit comme:Les sauts de ligne dans la colonne MySQL

John went to get water.
He was tired.
John went to get water.

J'utilise un navigateur SQLite DB (http://sqlitebrowser.org/). J'ai pensé que je pourrais faire des sauts de ligne avec: "John a couru une colline. \ N" mais malheureusement il sort le \ n aussi bien que le "". Quelqu'un peut-il m'aider avec ces sauts de ligne? Merci!

+0

Vous pourriez être en mesure de remplacer '. '(espace de période) avec'. 'et \ n en dehors des guillemets donc il est ajouté en tant que valeur et non en tant que chaîne. – xQbert

+0

duplication possible de [caractère Nouvelle ligne \ n dans la concaténation SQLite] (http://stackoverflow.com/questions/23930865/new-line-character-n-in-sqlite-concatenate) –

+0

SQLite ou MySQL? Il est marqué à la fois. –

Répondre

0

SQLite n'a pas de chaîne d'échappement logique. Vous devez concaténer le caractère newline d'une autre manière, comme la fonction char(10) ou en le tapant en mode exadécimal: x'0a'. Rappelez-vous que le caractère 10 est le newLine pour les architectures de fenêtres.

Il suffit d'utiliser une requête comme celui-ci (pour mettre à jour toutes les lignes):

update tabel_name set "description" = 
replace("description", '.', '.' || x'0a') 

Si vous souhaitez modifier une ligne spécifique ajouter une clause WHERE:

update tabel_name set "description" = 
replace("description", '.', '.' || x'0a') 
WHERE "rowid" = 1 

Le || est la concaténation opérateur dans SQLite.

+0

Est-ce que cela ne fonctionnera que pour une rangée? Je suis un peu confus quant à l'utilisation de char. Est-ce un type de champ? J'utilise actuellement le texte (j'utilisais varchar mais les sauts de ligne ne fonctionnaient pas, le texte ne fonctionnait pas non plus) – chronotrigga

+0

cette requête mettra à jour toutes vos lignes (vous n'avez qu'à changer le nom de la table). Si vous voulez que cela fonctionne sur des lignes spécifiques, vous devez ajouter une clause WHERE –

+0

hm .. donc en supposant que j'ai une colonne rowid avec des numéros d'id je ferais: 'update nom_table set" description "où rowid =" 1 "= replace ("description", '.', '.' || x'0a ') ' Je suis un peu nouveau donc excusez-moi. – chronotrigga