Warum hätte eine SQL-Abfrage "wo 1 = 1" [duplizieren]

7

Ich habe ein paar Fragen bearbeitet, die ich behalte, und ein Programmierer hat mir die Abfragen "wo 1 = 1" eingegeben, die immer als richtig zu bewerten scheinen.

Hat das Vorteile?

Duplizieren: Warum sollte jemand WHERE 1 = 1 UND in einer SQL-Klausel verwenden?

Diese Frage ist keine Antwort auf diese Frage.

Where-Klausel:

%Vor%

Keine Programmierung oder wenn Aussagen drängen und drinnen sind. Eine direkte Abfrage.

Wenn Sie das öffnen könnten, würde ich gerne wissen, ob es einen Zweck gibt, damit ich die 1 = 1 umschreiben und entfernen kann, wenn es unnötig ist.

    
Jeremy Boyd 05.02.2009, 18:08
quelle

7 Antworten

16

War es dynamische Abfragen? Manchmal ist das hilfreich, wenn dynamische Abfragen auf Basis von optionalen Parametern erstellt werden.

    
Tundey 05.02.2009, 18:09
quelle
10

Wenn Sie eine where-Klausel dynamisch erstellen, können Sie etwas faul sein und davon ausgehen, dass jeder von Ihnen hinzugefügten Klausel das Präfix "AND", z.

%Vor%     
Paul Dixon 05.02.2009 18:13
quelle
8

Wenn Sie Ihrer Abfrage automatisch Einschränkungen hinzufügen möchten, erleichtert dies Ihr Leben:

%Vor%

Ohne WHERE 1 = 1 müssten Sie in jedem Fall prüfen, ob es die erste Einschränkung ist, die Sie hinzufügen (und dann WHERE ... verwenden) oder ob Sie bereits eine andere Einschränkung hinzugefügt haben (und dann AND ... hinzufügen).

    
sth 05.02.2009 18:15
quelle
6

Ich verwende das für dynamische where-Klauseln, wenn ich etwas faule Programmierung mache und nicht immer überprüfen möchte, ob die Klausel leer ist, um festzustellen, ob ich jetzt ein UND zwischen meinen dynamischen Klauseln brauche.

    
Jay S 05.02.2009 18:12
quelle
4

Das macht nur in dynamischen Abfragen Sinn. Wenn Sie Parameter in einer Schleife hinzufügen, anstatt prüfen zu müssen, ob es bereits eine WHERE gibt, können Sie AND Column = Value jedes Mal anhängen.

    
Shaun Bowe 05.02.2009 18:13
quelle
1

Ich habe zwei Gründe dafür gesehen, wenn Sie immer ein wahres Ergebnis haben wollen, oder wenn eine willkürliche Zahl von "and condition = value" an die Anweisung angehängt wird

    
cmsjr 05.02.2009 18:10
quelle
0

Das ist sehr interessant ... Die WHERE-Klausel enthält nichts als 1 = 1? Ich habe dies häufig in SQL-Injection-Versuchen gesehen, in denen die WHERE-Klausel gesetzt ist %Code% als Mittel, um immer eine Ergebnisliste zurückzugeben.

Können Sie uns mehr darüber sagen, was mit dieser Abfrage passiert, damit wir die Frage besser beantworten können?

  • Nicholas
Nicholas Kreidberg 05.02.2009 18:13
quelle

Tags und Links