我有一个将内容保存为 blob 的 mysql 数据库,无论出于何种原因,这些开发人员选择使用 blob 都是我无法控制的。是否可以将数据转换为文本并将数据类型转换为文本?
问问题
4132 次
2 回答
3
你试过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)
于 2009-10-27T02:20:05.220 回答
1
将字段从 blob 转换为文本会截断所有大于 127 的字符。在我的情况下,我们有很多欧洲字符,所以这不是一个选项。这是我所做的:
- 将临时字段创建为文本
- 将 blob 字段复制到 temp 字段: UPDATE tbl SET col_temp = CONVERT(col USING latin1); 在这种情况下,我的 blob 包含 latin1 编码的字符
- 将实际字段转换为文本数据类型
- 将 temp 复制到实际字段
- 删除临时列
不是很简单,但它有效并且没有数据丢失。我正在使用版本:'5.1.50-community'
于 2011-05-23T16:33:47.417 回答