MySQL Blob to Text (dati e tipo di dati)
Domanda
Ho un database mysql che contiene il contenuto come un BLOB, per qualunque ragione quegli sviluppatori abbiano scelto di usare un BLOB fuori dal mio controllo. È possibile convertire i dati in testo e il tipo di dati in testo?
Soluzione
hai provato il comando alter table?
alter table mytable change mycolumn mycolumn text;
da http://forums.mysql.com/ read.php? 103,164923,167648 # msg-167648 sembra che tu possa usare CAST.
potresti creare una nuova colonna (TEXT), quindi compilarla con un comando di aggiornamento:
update mytable set myNewColumn = CAST(myOldColumn AS CHAR(10000) CHARACTER SET utf8)
Altri suggerimenti
La conversione del campo da BLOB in testo tronca tutti i caratteri > 127. Nel mio caso abbiamo molti personaggi europei, quindi questa non era un'opzione. Ecco cosa ho fatto:
- Crea campo temporaneo come testo
- Copia il campo BLOB nel campo temporaneo: AGGIORNA tbl SET col_temp = CONVERT (col USANDO latin1); In questo caso il mio blob conteneva caratteri con codifica latin1
- Converti il ??campo effettivo in tipo di dati di testo
- Copia temp nel campo effettivo
- Rimuovi colonna temporanea
Non esattamente semplice ma ha funzionato e nessuna perdita di dati. Sto usando la versione: '5.1.50-community'