Gibt es jemals einen logischen Grund, 1 = 1 in einer where-Klausel zu verwenden? [Duplikat]

8

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?

    
P.Brian.Mackey 02.12.2011, 16:42
quelle

5 Antworten

16

Es macht das Erstellen dynamischer WHERE-Klauseln einfacher ...

%Vor%

Auf diese Weise müssen Sie nicht trainieren, wenn Sie beim Hinzufügen von Bedingungen AND oder nicht benötigen. Sie immer brauchen das UND.

    
MatBailie 02.12.2011, 16:44
quelle
2

Ich habe gesehen, dass das so gemacht wurde, dass Sie beim Erstellen von dynamischen Abfragen nicht wissen mussten, wo die AND -Klausel gestartet werden sollte, da alles nach WHERE 1=1

war     
hunter 02.12.2011 16:44
quelle
2

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.

    
Angelo Fuchs 02.12.2011 16:45
quelle
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%     
Chris Eberle 02.12.2011 16:44
quelle
1

Die meisten der Fallentwickler verwenden es, um Kommentare unter Bedingungen zu erleichtern

    
Manoj 02.12.2011 16:51
quelle

Tags und Links