首页 > 解决方案 > 在节点环境中返回“NaN”的 SQL 查询

问题描述

在我的 Node 后端,我正在运行一个简单的 SQL 查询,直到最近它都可以正常工作。然而,现在我得到的部分结果是返回NaN而不是我期望的值。再次,不知道为什么。直到最近,这一直在起作用。如果我将查询和值直接插入 SQL Workbench,我会得到正确的结果。

有问题的函数是从另一个文件/函数调用的,如下所示:

async getBranches(ctx, guid) {
  return await this.db.Srt.getDivisions();
}

这是getDivisions功能:

  async getDivisions() {
    const query = `
      SELECT id_number AS division, description AS branch FROM cbr.divisions
        WHERE description NOT IN ("Administrative");
    `;
    const values = [];
    const result = await this.db.query(query, values);

    if (result.length > 0) {
      console.log('result: ', result); // See result below
      return result;
    }
    return [];
  }

这是记录到控制台的内容result

result:  [
  { division: 1, branch: NaN },
  { division: 2, branch: NaN },
  { division: 3, branch: NaN },
  { division: 5, branch: NaN },
  { division: 6, branch: NaN },
  { division: 7, branch: NaN },
  { division: 8, branch: NaN }
]

在 SQL Workbench 中,我得到相同查询的以下(正确)结果:

division| branch
      1 | Chicago
      2 | New York
      3 | Los Angeles
      5 | Atlanta
      6 | Denver
      7 | Seattle
      8 | Sacramento

这里有什么问题?同样,这是有效的 - 但现在不是,如上所述。

更新:好的,很奇怪,在恢复到我们以前的版本之后mariaDB"mariadb": "2.1.0"该函数再次工作,并按预期返回值。我不知道为什么这适用于该版本,但不适用于"mariadb": "2.1.3". 任何人都可以澄清这一点吗?

标签: sqlnode.jsmariadb

解决方案


推荐阅读