是否有任何开源库(任何语言,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中的 where ,PostgreSQL ,查看SQLite源代码,随意传递它)
谢谢!