• User Newbie

    mysql sostituzione stringhe di testo

    ciao ragazzi, sono di nuvoo qui a rompervi, avrei bisogno di sapere se è possibile fare una cosa del genere:
    580 record in una tabella con 10 campi. devo cambiare il campo 8 su tutte le righe. il campo 8 è fatto in maniera seguente riga 1 25100 milano, riga2 80100 napoli, riga3, 00195 roma e cosi via per tante citta e tanti cap.

    dato che ho creato un campo cap a parte vorrei rimuovere dal campo 8 i primi 5 caratteri che rappresentano il cap praticamente oppure i primi 6 cosi rimuovo pure lo spazio. tramite php dovrei usare il str replace ma non è adatta allo scopo perchè dovrei conoscere esattamente i valori da sostituire.
    che cosa posso usare.
    grazie


  • User Attivo

    In PHP puoi usare il comando substr().

    In particolare
    [php]substr('80100 Napoli', 6)[/php]
    ti restituirebbe 'Napoli'

    Ma se vuoi puoi fare direttamente da phpMyAdmin

    UPDATE `tabella` SET `cap`= LEFT(`citta`, 5), `citta`=SUBSTR(`citta`, 6);
    

  • User Newbie

    Riprendo questa discussione che ha gia' i tags giusti:

    Devo sostituire delle stringhe di testo usando la solita query:

    UPDATE table_name SET field = REPLACE(field, 'old', 'new');

    il problema e' che all'interno del campo di testo deve essere sostituito solamente "old" e non ad esempio old.jpg oppure olfriend e via dicendo.

    ho provato WHERE field = 'old' ma non funziona. Devo dire che nel testo, la parola old si trova ad esempio in una tabella per cui risulta in qhesto modo:
    <td>old</td>

    ci sto sbattendo la testa da un po....


  • User Attivo

    Quindi nel campo del DB hai salvato ad esempio <td>old</td> e non old?

    Nel tuo caso REPLACE non ti aiuta, devi utilizzare un WHERE necessariamente, ma se non hai un pattern comune la vedo dura.