【发布时间】:2012-08-20 08:00:57
【问题描述】:
我想获取 SQL 查询的 SELECT 块,而我想的是获取 SELECT 和 FROM 之间的文本。我应该使用什么正则表达式?
是否可以以相同的方式提取 FROM、WHERE 和 JOIN 块?
更新
我不能使用http://code.google.com/p/php-sql-parser/,因为它是为 MySQL 构建的,而我的 MSSQL 查询破坏了它。我已经搜索了很多 MSSQL 解析器,但找不到现成的解决方案,所以我能想到的唯一方法是自己使用正则表达式解析 SQL,并按照选择块位于 SELECT 和 FROM 之间的原则工作关键词。
示例
查询
SELECT STRAIGHT_JOIN a,b,c
FROM some_table an_alias
WHERE d > 5;
我想要这样的东西被退回:
$result['SELECT'] => 'STRAIGHT_JOIN a,b,c';
$result['FROM'] => 'some_table an_alias';
$result['WHERE'] => 'd>5';
【问题讨论】:
-
不清楚你想要什么,请添加1个例子。