Ich bin heute auf eine Ansicht in unserer Datenbank gestoßen, in der die erste Aussage in der where-Klausel war where 1 = 1
. Sollte dies nicht für jeden Datensatz zutreffen? Warum würde jemand dies schreiben, wenn es keine Datensätze filtert?
Ich bin heute auf eine Ansicht in unserer Datenbank gestoßen, in der die erste Aussage in der where-Klausel war where 1 = 1
. Sollte dies nicht für jeden Datensatz zutreffen? Warum würde jemand dies schreiben, wenn es keine Datensätze filtert?
Antworten:
Einige Builder für dynamische Abfragen enthalten diese Bedingung, so dass beliebige "echte" Bedingungen mit einem hinzugefügt werden können, AND
ohne dass eine Prüfung durchgeführt werden muss if (first condition) 'WHERE' else 'AND'
.
Wenn Ihr Programm viele SQL-Anweisungserstellungspunkte enthält, die ähnliche Abfragen generieren , können Sie die untersuchte Abfrage mit diesem Trick markieren. Wenn es um das Zählen des Satzes geht, können Sie den folgenden Code verwenden, um 42
aus einem SQL-Protokoll herauszugreifen .
select count(42) from table