【问题标题】:converting blob to varchar returns null in mysql将 blob 转换为 varchar 在 mysql 中返回 null
【发布时间】:2017-09-25 02:42:26
【问题描述】:

我的数据库表中有一个数据类型为MEDIUMBLOB 的字段。 如何使用 SQL 中的SELECT 查询将内容作为文本/字符串获取。 内容的MIMETYPEBinary/Image

其实我是在上传txt文件并插入到表格中。

我上传english文本文件时没有问题。但是当我上传malayalam文本文件时,它返回空值。

我试过了

SELECT CONVERT(uploaded_file USING utf8) AS content FROM table_name

SELECT CAST(uploaded_file AS CHAR(10000) CHARACTER SET utf8) AS content FROM table_name

我得到null

如何获取malayalam文字?

提前致谢

【问题讨论】:

  • 无法复制。你能检查列是否包含任何非空数据吗?
  • 列包含数据,我也可以保存文件

标签: mysql sql blob


【解决方案1】:

我在这里写了一些代码 - http://rextester.com/CHYY75133

看一看,它会创建、填充和读取表格。结果是可以预测的——我们有一些字节,并得到单词'രാകേഷ്'(使用utf8编码)。

-- Script was generated by Devart dbForge Studio for MySQL, Version 7.2.58.0
SET NAMES 'utf8';

DROP TABLE IF EXISTS table1;
CREATE TABLE table1 (
  id INT(11) NOT NULL AUTO_INCREMENT,
  st VARCHAR(255) DEFAULT NULL,
  bl MEDIUMBLOB DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB
CHARACTER SET latin1
COLLATE latin1_swedish_ci;

INSERT INTO table1 VALUES
(1, 'hello', x'E0B4B0E0B4BEE0B495E0B587E0B4B7E0B58D'); -- രാകേഷ്

SELECT bl, CAST(bl AS CHAR(1000) CHARACTER SET utf8) FROM table1;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 2020-12-24
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多