我想获取 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';