-
Modifica testo in campo
Salve
se in una colona di una tabella contenente del testo volessi modificare massivamente delle parti come potrei fare magari utilizzando solo query mysql?
Mi spiego meglio con un esempio
Se avessi un campo che contenga un testo tipo
Codice:
Lorem ipsum dolor sit amet, consectetur VERDE, ROSSO adipiscing elit, sed do eiusmod tempor incididunt ut labore
e volessi che dintasse
Codice:
Lorem ipsum dolor sit amet, consectetur [MIOTAG]VERDE, ROSSO[/MIOTAG] adipiscing elit, sed do eiusmod tempor incididunt ut labore
E questo su tutte le righe in cui il valore della cella contiene specifiche parole.
Come si potrebbe fare?
-
Salve,
può utilizzare la funzione UPDATE, ad es.:
Codice:
UPDATE nome_tabella SET nome_campo = 'Lorem ispum...' WHERE condizione
Può fare riferimento alla documentazione MySQL.
Saluti
-
Non è così semplice.
I campi NON contengono tutti lo stesso valore, il testo cercato può esserci o non esserci, e se presente può essere in qualunque posizione nel testo.
Altrimenti avrei chiesto semplicemente COME SI AGGIONA IL VALORE DI UNO O PIU' CAMPI IN MYSQL?
La risposta funziona se fosse per un solo record oppure se TUTTI i record contenessero lo stesso testo nel campo indicato.
Ad esempio si potrebbe avere (semplifico con soli 3 record)
Codice:
+-------+-------------------------------------------------------------------------------------------------------------------+
| 01 | Lorem ipsum dolor sit amet, consectetur VERDE, ROSSO adipiscing elit, sed do eiusmod tempor incididunt ut labore |
+-------+-------------------------------------------------------------------------------------------------------------------+
| 02 | Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |
+-------+-------------------------------------------------------------------------------------------------------------------+
| 03 | At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium VERDE, ROSSO. |
+-------+-------------------------------------------------------------------------------------------------------------------+
Che dovrebbero diventare
Codice:
+-------+------------------------------------------------------------------------------------------------------------------------------------+
| 01 | Lorem ipsum dolor sit amet, consectetur [MIOTAG]VERDE, ROSSO[/MIOTAG] adipiscing elit, sed do eiusmod tempor incididunt ut labore |
+-------+------------------------------------------------------------------------------------------------------------------------------------+
| 02 | Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. |
+-------+------------------------------------------------------------------------------------------------------------------------------------+
| 03 | At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium [MIOTAG]VERDE, ROSSO[/MIOTAG]. |
+-------+------------------------------------------------------------------------------------------------------------------------------------+
A meno di fare tante query singole quanti sono i record la risposta proposta non va.
Serve una query che analizzi TUTTI i record e quelli in target li trasformi aggiornandoli.
------
EDIT:
Forse ho trovato la soluzione:
Lanciando la seguente query
Codice:
SELECT campo, REGEXP_REPLACE(campo, '(VERDE, ROSSO)', '[MIOTAG]$1[\/MIOTAG]', 1, 0, 'c') AS 'Result' FROM tabella
Ottengo due colonne, la prima col valore originario la seconda con la sostituzione voluta.
Lanciando un UPDATE con SET campo = REGEXP... si aggiorna la tabella.