为什么此MySQL RowDataPacket结果不直接返回结果键值对?

时间:2018-07-05 14:34:12

标签: javascript mysql node.js mysqljs

我正在使用MysqlJs库从Node应用程序中查询后端。

根据查询方式,我有这两种不同类型的RowDataPacket结构。

从表中选择*:

results
Array(2) [Array(2), OkPacket]
length:2
 __proto__:Array(0) [, …]
 0:Array(2) [RowDataPacket, RowDataPacket]
 length:2
  __proto__:Array(0) [, …]
  0:RowDataPacket {user_login: Object}
  1:RowDataPacket {user_login: Object}

通过columnName选择列

results
Array(2) [Array(2), OkPacket]
length:2
 __proto__:Array(0) [, …]
 0:Array(2) [RowDataPacket, RowDataPacket]
  length:2
  __proto__:Array(0) [, …]
  0:RowDataPacket {user_login: Object, "": Object}
  1:RowDataPacket {user_login: Object, "": Object}

如果查看第一个查询结果,则在RowDataPacket中,将完整的行信息设置为一个对象属性 “ user_login ”也是我的表名。 在第二个查询结果中,在RowDataPacket中有两个属性 [user_login,“”(未命名)] ,并且第一个查询的相同结果分为这两个属性和具有colname结构的对象:值。

  • 为什么结果不一致?
  • 我们如何预测这种行为,是什么导致这种分裂?
  • 我是否每次都要更改逻辑以解析不同的proc结果?
  • 有没有图书馆可以减轻我的负担?

0 个答案:

没有答案