phpMyAdmin und WHERE 1

phpMyAdmin und WHERE 1

am 20.01.2008 11:18:52 von Ben Butschko

Moin,

ich habe mal ne Frage bzgl. phpMyAdmin:

Wieso schreibt phpMyAdmin beim erstellen eines SQL-Befehls als Vorgabe
"SELECT * FROM 'TABELLENNAME' WHERE 1" (Ist mir gerade aufgefallen, da ein
Kollege es mir in phpMyAdmin gezeigt hat) ?

Was soll den dieses WHERE 1? Klingt für mich unlogisch.
Hat es auswirkungen bei einfachen select-anweisungen ohne das man
bedingungen wie where, and etc. einbindet? ich denke wohl eher nicht.

Den DBVisualizer z. B. schreibt WHERE 1 nirgends rein noch habe ich so
eine WHERE Bedingung woanders gesehen oder geschrieben.

Für Aufklärung bedanke ich mich :-)

Netten Gruß
Ben

Re: phpMyAdmin und WHERE 1

am 20.01.2008 11:47:30 von Claus Reibenstein

Ben Butschko schrieb:

> Wieso schreibt phpMyAdmin beim erstellen eines SQL-Befehls als Vorgabe
> "SELECT * FROM 'TABELLENNAME' WHERE 1" (Ist mir gerade aufgefallen, da ein
> Kollege es mir in phpMyAdmin gezeigt hat) ?

Ich weiß auch nicht, warum phpMyAdmin "SELECT *" vorgibt. Ich vermute
mal, dass dies nur ein Template darstellen soll, in welchem man den "*"
durch seine eigene Auswahl ersetzen soll(te).

> Was soll den dieses WHERE 1?

Hierfür gilt Ähnliches.

> Klingt für mich unlogisch.

"SELECT *" selektiert alle Spalten und "WHERE 1" alle Zeilen. Ohne
Veränderung wird also die gesamte Tabelle selektiert. Klingt für mich
logisch.

Gruß. Claus

Re: phpMyAdmin und WHERE 1

am 20.01.2008 17:24:29 von Johannes Vogel

Hi Ben

Ben Butschko wrote:
> ich habe mal ne Frage bzgl. phpMyAdmin:
> Wieso schreibt phpMyAdmin beim erstellen eines SQL-Befehls als Vorgabe
> "SELECT * FROM 'TABELLENNAME' WHERE 1" (Ist mir gerade aufgefallen, da ein
> Kollege es mir in phpMyAdmin gezeigt hat) ?
> Was soll den dieses WHERE 1? Klingt für mich unlogisch.
> Hat es auswirkungen bei einfachen select-anweisungen ohne das man
> bedingungen wie where, and etc. einbindet? ich denke wohl eher nicht.

Manchmal ist es programmiertechnisch noch ganz praktisch, schon
vorgegeben zu haben, dass ein where existiert:

sql = "select ... from table where 1 ";
$sql.= (empty($searchA)) ? '' : "and fieldA like '$searchA%'";
$sql.= (empty($searchB)) ? '' : "and fieldB like '$searchB%'";

Hier wären die Anhängsel komplizierter, wenn where 1 nicht schon
vorhanden wäre.

HTH, Johannes

Re: phpMyAdmin und WHERE 1

am 20.01.2008 19:43:53 von Niels Braczek

Ben Butschko schrieb:

> Was soll den dieses WHERE 1? Klingt für mich unlogisch.

Technisch gesehen ist es völlig wirkungslos. Es bringt schlicht und
einfach den Komfort, dass das WHERE da schon steht und die Query
trotzdem syntaktisch in Ordnung ist.

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: phpMyAdmin und WHERE 1

am 21.01.2008 14:13:03 von Peter Blancke

Ad 2008-01-20, Johannes Vogel dixit:
> Ben Butschko wrote:

>> ich habe mal ne Frage bzgl. phpMyAdmin: Wieso schreibt phpMyAdmin
>> beim erstellen eines SQL-Befehls als Vorgabe "SELECT * FROM
>> 'TABELLENNAME' WHERE 1" (Ist mir gerade aufgefallen, da ein
>> Kollege es mir in phpMyAdmin gezeigt hat) ? Was soll den dieses
>> WHERE 1? Klingt für mich unlogisch. Hat es auswirkungen bei
>> einfachen select-anweisungen ohne das man bedingungen wie where,
>> and etc. einbindet? ich denke wohl eher nicht.

> Manchmal ist es programmiertechnisch noch ganz praktisch, schon
> vorgegeben zu haben, dass ein where existiert:

> sql = "select ... from table where 1 ";
> $sql.= (empty($searchA)) ? '' : "and fieldA like '$searchA%'";
> $sql.= (empty($searchB)) ? '' : "and fieldB like '$searchB%'";

> Hier wären die Anhängsel komplizierter, wenn where 1 nicht schon
> vorhanden wäre.

Diese Antwort wollte ich auch geben, habe es aber wegen der
Unsinnigkeit im Falle eines gewuenschten Oderierens seingelassen.
Nur bei "AND" nutzt es, da hast Du Recht.

Grusz,

Peter Blancke

--
Hoc est enim verbum meum!