javascript - 将sql查询解析为JSON

标签 javascript sql postgresql typescript

我正在寻找一种方法(最好是 NPM 包)来将 SQL 查询解析为 JSON。我找到了一些用于 SELECT 语句的,但实际上我需要 UPDATE 和 INSERT INTO 语句。
例如,形式为

的 Query
"UPDATE "users" SET name = $2 where id in ($1)", ['new name', 1]

结果应该是这样的:

{ 
  action: 'UPDATE',
  entity: 'users',
  values: { name: 'new name' },
  conditions: { 'id': 1} 
}

感谢您的帮助!

最佳答案

欢迎来到 StackOverflow!

有多个库可以执行此操作。一个例子是 node-sql-parser .根据他们的自述文件,您可以简单地执行以下操作:

const { Parser } = require('node-sql-parser');
const parser = new Parser();
const ast = parser.astify('SELECT * FROM t'); // mysql sql grammer parsed by default

console.log(ast);

输出会是这样的:

{
  "type": "select",
  "columns": "*",
  "from": [
    {
      "table": "t"
    }
  ]
}

您可以在这里尝试一下,看看它是否符合您的期望:https://npm.runkit.com/node-sql-parser .

关于javascript - 将sql查询解析为JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58970732/

相关文章:

javascript - Microsoft Edge 中流的新响应

javascript - 带有 phonegap 和 firebase 的移动应用程序

javascript - 如何强制函数连续执行?

php - 更新后在 codeigniter 中获取受影响行的 ID

javascript - canvas 上的 drawImage 在 firefox 中有奇怪的长宽比和其他问题

sql - Tsql,有没有办法使用行中的现有字段作为同一行中另一个字段中字符串的一部分来更新行?

sql - 根据时间值折叠多行

sql - 从多对多计数

c# - 另一个 "There is already an open DataReader associated......"

mysql - 尚不存在的 SQL 数据库的数据转储文件类型