【问题标题】:MySQL Blob to Text (data and datatype)MySQL Blob 到文本(数据和数据类型)
【发布时间】:2010-12-10 08:22:15
【问题描述】:

我有一个将内容保存为 blob 的 mysql 数据库,无论出于何种原因,这些开发人员选择使用 blob 都是我无法控制的。是否可以将数据转为文本,将数据类型转为文本?

【问题讨论】:

标签: sql mysql blobs


【解决方案1】:

你试过alter table命令吗?

alter table mytable change mycolumn mycolumn text; 

来自http://forums.mysql.com/read.php?103,164923,167648#msg-167648,看来您可以使用 CAST。

您可以创建一个新的 (TEXT) 列,然后用更新命令填充它:

update mytable set myNewColumn = CAST(myOldColumn AS CHAR(10000) CHARACTER SET utf8) 

【讨论】:

  • 我从文本到 blob 再返回,数据没有任何变化。
【解决方案2】:

将字段从 blob 转换为文本会截断所有大于 127 的字符。在我的例子中,我们有很多欧洲字符,所以这不是一个选项。这是我所做的:

  1. 将临时字段创建为文本
  2. 将 blob 字段复制到 temp 字段:UPDATE tbl SET col_temp = CONVERT(col USING latin1);在这种情况下,我的 blob 包含 latin1 编码的字符
  3. 将实际字段转换为文本数据类型
  4. 将 temp 复制到实际字段
  5. 删除临时列

并不完全简单,但它有效并且没有数据丢失。我正在使用版本:'5.1.50-community'

【讨论】:

    猜你喜欢
    • 2011-08-15
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 2016-02-07
    • 2014-01-31
    • 2012-11-12
    • 1970-01-01
    • 2011-02-03
    相关资源
    最近更新 更多