Siam博客

mysql varbinary 查询出来转 utf8 编码查看

2024-07-03

背景

在公司业务解决历史遗留的表字符编码问题时候,使用到了 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
本文链接:
版权声明: 本文由 Siam原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权

扫描二维码,分享此文章