Zunächst gestehe ich, ich bin nicht wirklich mit regulären Ausdrücken experimentiert. Ich weiß, wie man es benutzt, aber wenn ich eins bauen will, ist es etwas anderes ... Ich werde es dokumentieren.Eine Regex zum Extrahieren von SQL Where-Klausel
Ich möchte die WHERE-Klausel in einer SQL-Abfrage extrahieren. Mein Ziel ist es, eine Bedingung hinzuzufügen, wie folgt aus:
SELECT * FROM myTbl WHERE columnA = 'B' AND columnB = 'C' ORDER BY columnX GROUP BY columnZ LIMIT 5
TO:
SELECT * FROM myTbl WHERE columnC = 'D' AND (columnA = 'B' AND columnB = 'C') ORDER BY columnX GROUP BY columnZ LIMIT 5
ich einige Ausdruck versucht, aber ich bin so nichtig ...
(where (.*)(?<=order by))
Ich wollte alles zwischen "wo" und ("order by" oder "limit" oder "group by") bekommen ...
Wer hat einen Ratschlag für mich? Ich habe eine Suche gemacht und ich finde nichts dergleichen. Ich habe SQL Parser gefunden, aber diese Engines sind zu groß im Vergleich zu der Aufgabe, die ich abschließen möchte.
Vielen Dank.
Ich weiß nicht, wie generisch Sie das brauchen, aber müssen Sie mehr als eine where-Klausel, z. in einer Unterabfrage? – Paddy
Ich habe ein ähnliches Problem und am nächsten komme ich mit diesem Ausdruck: (?:^| \)) (?: [^ \ (\)] +) (?: where \ s +) (. *?) (? : Gruppe von | Order by | $) –