Wofür ist das? 'WHERE 1 AND'

Gudy

Erfahrenes Mitglied
Hi,
wenn ich in PhpMyAdmin eien Abfrage erstellen über suchen steht in dem WHERE immer ein 'WHERE 1 AND' und dann erst meine Bedingung, was macht dieses 'WHERE 1' ?

Hier noch ein Beisspiel...

SELECT `OrtId` , `OrtName` , `OrtPLZ`
FROM `tblort`
WHERE 1 AND `OrtPLZ` = '''' LIMIT 0 , 30

Danke
 
Hi!

Hat den Sinn, dass Du danach entweder keines, eines oder mehrere WHERE Clause Elemente einbinden kannst (ist also quasi ein Platzhalter).

Vewende ich z.B. dann, wenn die Abfrage hintennach dynamisch erstellt wird.

Also (mit ein bisschen pseudocode:

PHP:
if (date==heute) {
    $sqlQueryExtension.=' AND t1.attribut1=\'ABC\' ';
}

$sql=' SELECT * '
    . ' FROM '
    . ' `pseudotabelle` AS t1 '
    . ' WHERE 1>0 ' /// ODER EBEN WHERE 1
    .  $sqlQueryExtension;
Wenn date<>heute entsteht folgender, gültiger SQL Query:
SELECT * FROM `pseudotabelle` WHERE 1>0;

Wenn date==heute entsteht folgender, gültiger SQL Query:
SELECT * FROM `pseudotabelle` WHERE 1>0 AND attribut1='ABC';

Hättest Du in diesem Fall das "WHERE 1>0" bzw. "WHERE 1" NICHT würde folgender Nonsens rauskommen:
SELECT * FROM `pseudotabelle` AND attribut1='ABC';

Wäre bei einer Extension unwichtig (da du das Where ja auch in die SQL Extension schreiben könntest), sobald du den Extension Query aber aus mehreren Schleifen generierst, wirds ein Problem.

Wenn Du einmal eine (halbwegs intelligente) Volltextsuche programmierst, kommst du um diesen Kniff nicht herum.

LG
Mike
 
Zurück