javascript - Parsning av sql-fråga till JSON
Jag letar efter ett sätt, helst ett NPM-paket, för att analysera en SQL-fråga till JSON. Jag har hittat några för SELECT-satser, men jag behöver faktiskt för UPDATE- och INSERT INTO-satser.\nTill exempel, en fråga i form av
"UPDATE "users" SET name = $2 where id in ($1)", ['new name', 1]
Resultatet bör vara något i stil med:
{
action: 'UPDATE',
entity: 'users',
values: { name: 'new name' },
conditions: { 'id': 1}
}
Tack för din hjälp!
Svar #1
Välkommen till StackOverflow!
Det finns flera bibliotek där ute för att göra detta. Ett exempel är node-sql-parser. Baserat på deras readme kan du helt enkelt göra:
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);
Och resultatet skulle vara något sådant här:
{
"type": "select",
"columns": "*",
"from": [
{
"table": "t"
}
]
}
Du kan leka med det här för att se om det motsvarar dina förväntningar: https://npm.runkit.com/node-sql-parser.
