是否有任何开源库(任何语言,首选 python/PHP)将 ANSI SQL 字符串标记/解析为其各种组件?
也就是说,如果我有以下字符串
SELECT a.foo, b.baz, a.bar
FROM TABLE_A a
LEFT JOIN TABLE_B b
ON a.id = b.id
WHERE baz = 'snafu';
我会取回一个数据结构/对象,例如
//fake PHPish
$results['select-columns'] = Array[a.foo,b.baz,a.bar];
$results['tables'] = Array[TABLE_A,TABLE_B];
$results['table-aliases'] = Array[a=>TABLE_A, b=>TABLE_B];
//etc...
重申一下,我正在寻找一个数据库包中的代码,该代码将 SQL 命令分开,以便引擎知道如何处理它。在互联网上搜索了很多关于如何用 SQL 解析字符串的结果。那不是我想要的。
我意识到我可以通过开源数据库的代码找到我想要的东西,但我希望有一些更现成的东西,(尽管如果你知道在 MySQL、PostgreSQL、SQLite 源代码中的哪个位置,请随意通过它沿着)
谢谢!