gpt4 book ai didi

php - 解析/标记包含 SQL 命令的字符串

转载 作者:可可西里 更新时间:2023-11-01 13:29:04 24 4
gpt4 key购买 nike

是否有任何开源库(任何语言,首选 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 源码自己看, 随意传)

谢谢!

最佳答案

SQLite 源代码有一个名为 parse.y 的文件,其中包含 SQL 语法。您可以将该文件传递给 lemon parser generator生成执行语法的 C 代码。

关于php - 解析/标记包含 SQL 命令的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com