![]() |
活泼的柚子 · blob转file ...· 1 月前 · |
![]() |
儒雅的手电筒 · java读取文件并存为blob_java ...· 1 月前 · |
![]() |
英俊的书签 · c语言删除字符串中的指定字符 - ...· 11 月前 · |
![]() |
坚韧的松鼠 · markdown - Unable to ...· 1 年前 · |
![]() |
强悍的毛衣 · javascript - ...· 1 年前 · |
![]() |
非常酷的仙人掌 · 集度 ROBO-01 概念车 90% ...· 1 年前 · |
![]() |
没人理的米饭 · 如何在Minio中设置BucketLifeC ...· 1 年前 · |
我有很多记录,其中文本存储在MySQL的blob中。为了便于处理,我想将数据库中的格式更改为文本...您是否知道如何轻松地进行更改以避免中断数据-我猜需要对其进行适当的编码?
下面是一个使用 UTF-8 编码将blob转换为char(1000)的 a person 示例:
CAST(a.ar_options AS CHAR(10000) CHARACTER SET utf8)
这就是他的答案。关于CAST right here ,你可以读到更多的东西。我希望它能有所帮助。
这是不必要的。只需使用
SELECT CONVERT(column USING utf8) FROM
.....不仅仅是
SELECT column FROM
..。
或者,您可以使用此函数:
DELIMITER $$
CREATE FUNCTION BLOB2TXT (blobfield VARCHAR(255)) RETURNS longtext
DETERMINISTIC
NO SQL
BEGIN
RETURN CAST(blobfield AS CHAR(10000) CHARACTER SET utf8);
DELIMITER ;
你可以很容易地做到这一点。
ALTER TABLE `table_name` CHANGE COLUMN `column_name` `column_name` LONGTEXT NULL DEFAULT NULL ;
上面的查询对我有效。我希望这对你也有帮助。
这些答案对我来说都不起作用。当转换为UTF8时,当编码器遇到一组无法转换为UTF8的字节时,将导致?替换会导致数据丢失。您需要使用UTF16:
SELECT
blobfield,
CONVERT(blobfield USING utf16),
CONVERT(CONVERT(blobfield USING utf16), BINARY),
CAST(blobfield AS CHAR(10000) CHARACTER SET utf16),
CAST(CAST(blobfield AS CHAR(10000) CHARACTER SET utf16) AS BINARY)
您可以在MySQL工作台中检查二进制值。右键单击字段-> Open Value in Viewer-> Binary。当转换回二进制值时,二进制值应该与原始值相同。
或者,您可以只使用base-64,它就是为此目的而制作的:
SELECT