简介:我希望有一个库或例程可以做到这一点,但我还没有找到这样的东西。我真的在寻找从哪里开始的方向和建议......
情况是这样的:我有一段纯文本的 SQL 命令。它可能是一个或多个 SQL 命令。我需要一种方法来分割多个 SQL 命令,以便我可以一次运行它们。Microsoft SQL Management Studio 确实具有开箱即用的此行为。
我正在尝试将此功能添加到在 Apache (Debian) 上运行的 PHP5/MySQL5 应用程序。
一些要点:
下面是一个示例 SQL 块,我需要将其拆分为两个语句:
select sMessage,
(
SELECT COUNT(sTag) FROM Tags WHERE ixTicket = note.ixTicket
) FROM note
select * from ticket
WHERE (SELECT MAX(nCount) FROM Counter WHERE ixTicket = ticket.ixTicket) > 5
Run Code Online (Sandbox Code Playgroud)
我尝试了一些正则表达式尝试,但这似乎不够强大。
关于解决这个问题的方法有什么建议吗?
最好的选择是要求用户在语句之间放置某种类型的分隔符。例如:要求每个语句用仅包含单词 GO 或“\”的行来界定,或者以“;”结束每个语句。
通过这种方式,您可以轻松地将单个字符串分解为单独的 SQL 语句。