如何从mysql2中的columnType整数值确定列类型名称?

问题描述

使用MysqL2查询时,回调函数fields的第三个参数具有以下documentation

console.log(fields); // fields contains extra Meta data about results,if available

好的,太好了。但是,当我查看fields数组中的值时,会看到以下内容

[
      {
        "_buf":{},"_clientEncoding":"utf8","_catalogLength":3,"_catalogStart":10,"_schemaLength":0,"_schemaStart":14,"_tableLength":11,"_tableStart":15,"_orgTableLength":0,"_orgTableStart":27,"_orgNameLength":2,"_orgNameStart":31,"characterSet":63,"encoding":"binary","name":"id","columnLength":11,"columnType":3,// <-- column type 3? This is an INTEGER field
        "flags":1,"decimals":0
      },{
        ...
        "columnType":253,// <-- column type 253? This is a VARCHAR field
        ...
      }
]

如何根据这些整数值确定 actual 列的类型?

解决方法

进行更多挖掘之后,我能够通过查看source找到答案。 mysql2公开了一个Types字段,该字段具有列类型名称作为键,列ID作为值。

发布时,该列表如下所示:

{
  "DECIMAL": 0,"TINY": 1,"SHORT": 2,"LONG": 3,"FLOAT": 4,"DOUBLE": 5,"NULL": 6,"TIMESTAMP": 7,"LONGLONG": 8,"INT24": 9,"DATE": 10,"TIME": 11,"DATETIME": 12,"YEAR": 13,"NEWDATE": 14,"VARCHAR": 15,"BIT": 16,"JSON": 245,"NEWDECIMAL": 246,"ENUM": 247,"SET": 248,"TINY_BLOB": 249,"MEDIUM_BLOB": 250,"LONG_BLOB": 251,"BLOB": 252,"VAR_STRING": 253,"STRING": 254,"GEOMETRY": 255
}