背景
在公司业务解决历史遗留的表字符编码问题时候,使用到了 varbinary 这个类型
具体怎么解决编码问题的这期不讲,这期主要讲 varbinary 在我使用开源 DBeaver 查看的时候 无法正常显示成文字 怎么快速简单的解决
SQL
SELECT CONCAT(
'SELECT ',
GROUP_CONCAT(
CASE
WHEN DATA_TYPE = 'varbinary' THEN CONCAT('CONVERT(', COLUMN_NAME, ' USING utf8mb4) AS ', COLUMN_NAME)
ELSE COLUMN_NAME
END
SEPARATOR ', '
),
' FROM 表名称 WHERE 条件
) AS sql_query
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = '数据库名称' AND TABLE_NAME = '表名称';
可以生成sql语句 把相关联的列都加上 Convert 转换
SELECT id, build_id, CONVERT(benefit USING utf8mb4) AS benefit, CONVERT(edit_benefit USING utf8mb4) AS edit_benefit, CONVERT(material USING utf8mb4) AS material, CONVERT(trans USING utf8mb4) AS trans, CONVERT(remark USING utf8mb4) AS remark, CONVERT(school USING utf8mb4) AS school, is_published, is_new, action_time FROM 表名 WHERE xx
扫描二维码,分享此文章