J'ai une énorme table mysql (appelée Malheureusement, j'ai essayé d'imprimer toutes les lignes avec Word Banana, et cela n'a pas fonctionné. P>
aidez-moi s'il vous plaît. P>
tcountriesnew code>) et une colonne (appelée
slogen, type blob code>).
Dans chacun de ces
slogen code> blobs, je voudrais remplacer un mot, par exemple:
banane code> à
pomme code>. P>.
Sélectionnez * à partir de TCountriesNouveau où Slogen aime '% Banana%'; Code> P>
3 Réponses :
Quelle version utilisez-vous? Peut-être que ce bogue: http://bugs.mysql.com/bug.php?id= 27 . Sinon, essayez de Cast Votre colonne blob. P >
dépend de ce que vous entendez par "remplacer"; Utilisation de Remplacer sur Afficher le texte modifié dans Sélectionnez: ou Mettre à jour les données dans une table: P> update tcountriesnew set slogen=replace(slogen, 'bananas', 'apples') where slogen like '%bananas%';
Dans certains cas, il est nécessaire de sauver des textes blob. Dans mon cas, pour une raison quelconque, les développeurs DRUPAL 7 choisissent d'utiliser un blob pour toutes les colonnes de texte - généralement, il s'agit d'un contrôle du développeur.
Si vous souhaitez prendre en charge toutes les langues, alors blob code> pourrait être nécessaire. Peut-être. Pour la plupart des langues
texte code> va bien. Vous perdez beaucoup de fonctions lorsque vous utilisez
blob code> comme le texte n'est pas considéré comme un côté du serveur de texte. C'est pourquoi je recommanderais d'utiliser
texte code>. S'il y a encore des problèmes avec certaines langues, ils seront probablement résolus dans MySQL Server de toute façon.
@Nux: Que si une seule apparition de bananes doit être remplacée au lieu de tous les permettre de dire qu'il est en position 2380. Comment faire ça
S'il s'agit d'une connaissance, vous pouvez diviser la chaîne avec substrateur ou quelque chose comme ça. Regardez: dev.mysql.com/doc/refman /5.0/fr/string-fonctions.html
@Nux: Le problème est remplacé met à jour toute la survenue même lorsque la position est spécifiée de la chaîne. Cependant, lorsque vous utilisez les mêmes valeurs pour sélectionner la requête, il affiche la valeur mise à jour uniquement à une occurrence
Pas sûr de ce que vous voulez dire. Sélectionnez Remplacer ('Bananas sont des bananes', 'bananes', 'pommes') code> va produire
les pommes sont des pommes code>. Si vous souhaitez remplacer un seul remplacement, vous devez trouver un moyen différent de le faire.
Dans certains cas, il est nécessaire de sauvegarder les textes blob. Dans mon cas, pour une raison quelconque, les développeurs Drupal 7 choisissent d'utiliser un blob pour toutes les colonnes de texte - ceci est hors de contrôle du développeur.
Pour convertir un blob en texte, utilisez la fonction de convertir MySQL. Ensuite, vous devez l'enregistrer dans la base de données et la convertir à nouveau en blob - mais cela est traité automatiquement par MySQL. Donc, la requête suivante ferait le truc: p> sur MySQL 5.5, cela résolut mon problème complètement. P> aussi, Configurez votre phpmyAdmin pour afficher les données BLOB P> p>