Ich arbeite an einer Codebasis, die oft
hat where 1=1
Diese Abfragen sind oft komplex und schwer zu lesen. Daher ist es nicht immer möglich, die Abfragesemantik nur für einen Refactor aufzuschlüsseln. Mein Bauchgefühl ist, dass dies immer unnötig ist. Möglicherweise gibt es eine Anforderung für eine WHERE-Klausel, die der Anforderung für eine GROUP BY -Klausel ähnlich ist, wenn ein SELECT
mit einer Aggregatfunktion neben einer Spalte für eine Gruppe ausgeführt wird.
Gibt es jemals eine Notwendigkeit dafür?
Es ist nützlich, wenn Sie Ihrem SQL dynamisch Beschränkungen hinzufügen, so dass Sie sich nie um das Schlüsselwort 'WHERE' kümmern müssen und 'AND' am Anfang jedes Teils verwenden können, an dem Sie eine Einschränkung hinzufügen. (Wenn Sie möchten, kann ich ein kleines Beispiel codieren, das es erklärt.)
Also, ja, es gibt legitime Verwendungen von 1 = 1.
Ich denke, es hat etwas damit zu tun, lange WHERE-Klauseln schreiben zu können, ohne über falsche UND-Anweisungen nachdenken zu müssen. Mit anderen Worten, es ist nur da, um den Code schöner zu machen. Ziemlich sicher, dass das optimiert wird. Wenn es jedoch ein ODER gibt, ist das der Geruch von SQL-Injektion:)
%Vor%Tags und Links sql