开发者社区> 问答> 正文

mysqlType为set类型时,canal取值为数值,对应的实际值如何取到

rowData其中mysqlType为set类型的 afterColumns_的值

index: 11 sqlType: -7 name: "media" isKey: false updated: false isNull: false value: "21" mysqlType: "set('SITE_SET_QQCLIENT','SITE_SET_QZONE','SITE_SET_PENGYOU','SITE_SET_QQCOM','SITE_SET_MUSIC','SITE_SET_WECHAT','SITE_SET_MOBILE_UNION','SITE_SET_MOBILE_INNER')"

canal客户端取到的value值为21,实际值是SITE_SET_QQCLIENT、SITE_SET_PENGYOU和SITE_SET_MUSIC,请问实际值怎么取到。同样还有,当mysqlType为enum时,如何取到实际值?

原提问者GitHub用户MonikaSophin

展开
收起
云上静思 2023-05-04 12:14:59 74 0
1 条回答
写回答
取消 提交回答
  • 21应该是mysql实际存储的数据格式,它是一个bit位的表示方式.

    21转化为二进制:10101 也就是对应于set的第1、3、5号位的值,最终值是:SITE_SET_QQCLIENT, SITE_SET_PENGYOU, SITE_SET_MUSIC

    原回答者GitHub用户agapple

    2023-05-05 10:33:11
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载