텍스트가 MySQL의 Blob에 저장된 레코드가 많이 있습니다. 다루기 쉽도록 데이터베이스의 형식을 TEXT로 변경하고 싶습니다 … 데이터를 중단하지 않도록 변경하는 방법에 대한 아이디어가 있다면 제대로 인코딩해야한다고 생각하십니까?
답변
불필요합니다. 그냥 SELECT CONVERT(column USING utf8) FROM
대신 …..를 사용하십시오 SELECT column FROM
…
답변
UTF-8 인코딩 으로 Blob을 char (1000)로 변환하려는 사람 의 예는 다음과 같습니다 .
CAST(a.ar_options AS CHAR(10000) CHARACTER SET utf8)
이것이 그의 대답입니다. 당신은 CAST에 대해 읽을 수 많은 아마이 바로 여기 . 나는 그것이 도움이되기를 바랍니다.
답변
나는 같은 문제가 있었고 여기 내 해결책이 있습니다.
- 각 Blob 열에 대해 테이블에 텍스트 유형의 새 열을 만듭니다.
- 모든 얼룩을 텍스트로 변환하고 새 열에 저장하십시오.
- 얼룩 열 제거
- 새 열의 이름을 제거 된 열의 이름으로 바꿉니다.
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;
답변
아주 쉽게 할 수 있습니다.
ALTER TABLE `table_name` CHANGE COLUMN `column_name` `column_name` LONGTEXT NULL DEFAULT NULL ;
위의 쿼리는 저에게 효과적이었습니다. 나는 그것이 당신에게도 도움이되기를 바랍니다.