編輯
我想這樣做在SQL查詢一些驗證,以確認該查詢是一個SELECT而不是UPDATE或DELETE或INSERT或任何SQL語句怪異。
我知道最簡單的方法是匹配 「^ SELECT」,但是:
查詢可以開始 「(」 像
(SELECT * FROM等等WHERE ID> 1 LIMIT 3 )UNION(SELECT * ...)
查詢可以啓動 「遞推式」
與遞歸CTE AS(SELECT * FROM等等)
我想確定一個SQL查詢是否是一個SELECT。 嗯,我不知道在編寫正則表達式之前是否有一些奇怪的問題需要了解。
任何幫助表示讚賞。
編輯:我要檢查它是否是一個純Select查詢:)
你試圖解析什麼味道的SQL?不同的供應商提供不同的語法和選項,儘管您的示例似乎是SQL Server上的CTE。 – Oded 2010-11-20 11:32:51
它不能是供應商特定 – dzen 2010-11-20 11:38:38
似乎它不是特定於SQL Server:http://www.davidcramer.net/code/django/6939/scaling-threaded-comments-on-django-at-disqus.html – dzen 2010-11-20 11:40:17