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