ejemplo - mediumblob mysql



¿Cómo convierto de BLOB a TEXT en MySQL? (4)

Después de buscar en Google para ti he encontrado this . Es una respuesta para una persona que quiere convertir un blob a char (1000) con UTF-8 :

CAST(a.ar_options AS CHAR(10000) CHARACTER SET utf8)

Esta es su respuesta. Probablemente hay mucho más que puedes leer sobre CAST aquí mismo . Espero que ayude a algunos.

Tengo un montón de registros donde el texto ha sido almacenado en un blob en MySQL. Para facilitar el manejo, me gustaría cambiar el formato de la base de datos a TEXTO ... ¿Alguna idea de la facilidad con la que realizar el cambio para no interrumpir los datos? ¿Supongo que tendrá que codificarse correctamente?


Answer #1

He tenido el mismo problema, y ​​aquí está mi solución:

  1. crear nuevas columnas de tipo texto en la tabla para cada columna de blob
  2. convierta todos los blobs en texto y guárdelos en las nuevas columnas
  3. eliminar las columnas de blob
  4. cambiar el nombre de las nuevas columnas a los nombres de los eliminados
ALTER TABLE mytable
ADD COLUMN field1_new TEXT NOT NULL,
ADD COLUMN field2_new TEXT NOT NULL;

update mytable set
field1_new = CONVERT(field1 USING utf8),
field2_new = CONVERT(field2 USING utf8);

alter table mytable
drop column field1,
drop column field2;

alter table mytable
change column field1_new field1 text,
change column field2_new field2 text;

Answer #2

Puedes hacerlo muy fácilmente.

ALTER TABLE `table_name` CHANGE COLUMN `column_name` `column_name` LONGTEXT NULL DEFAULT NULL ;

La consulta anterior funcionó para mí. Espero que te ayude a ti también.


Answer #3

Eso es innecesario. Simplemente use SELECT CONVERT(column USING utf8) FROM ..... en lugar de simplemente SELECT column FROM ...





blobs