Re: Abfrage mySQL

de.comp.lang.php.datenbanken existiert. Ich leite Dich mal dahin weiter.

Gruß. Claus

Ralf K. schrieb:
> Hallo!
>
> Abfrage lautet im Moment:
>
> **Abfrage Begin**
>
> $query = sprintf("SELECT hausnr FROM leitungswege WHERE hausnr LIKE
> $new_hausnr");
>
> **Abfrage Ende**
>
> Wenn "$new_hausnr" in der Tabelle steht, wird alles korrekt
> ausgegeben. Nun soll aber, wenn "$new_hausnr" nicht in der mySQL
> Tabelle steht, $new_hausnr = "1" sein.Wie gehts?
>
> Danke schonmal...
>
>
Claus Reibenstein [ Mo, 22 Oktober 2007 12:43 ] [ ID #1851636 ]

Re: Abfrage mySQL

> Ralf K. schrieb:

>> $query = sprintf("SELECT hausnr FROM leitungswege WHERE hausnr LIKE
>> $new_hausnr");

>> Wenn "$new_hausnr" in der Tabelle steht, wird alles korrekt
>> ausgegeben. Nun soll aber, wenn "$new_hausnr" nicht in der mySQL
>> Tabelle steht, $new_hausnr = "1" sein.Wie gehts?

Ganz ohne PHP:

SELECT hausnr
FROM leitungswege t1
WHERE EXISTS(SELECT * FROM leitungswege t2 WHERE t2.hausnr = $new)
AND t1.hausnr = $new
OR NOT EXISTS(SELECT * FROM leitungswege t2 WHERE t2.hausnr = $new)
AND t1.hausnr = 1;

oder

SELECT hausnr
FROM leitungswege t1
WHERE (SELECT COUNT(*) FROM leitungswege t2 WHERE t2.hausnr = $new) > 0
AND t1.hausnr = $new
OR (SELECT COUNT(*) FROM leitungswege t2 WHERE t2.hausnr = $new) = 0
AND t1.hausnr = 1;

und das kann man verkürzen zu

SELECT hausnr
FROM leitungswege t1
WHERE ( [at] c := (SELECT COUNT(*) FROM leitungswege t2 WHERE t2.hausnr =
$new)) > 0
AND t1.hausnr = $new
OR [at] c = 0
AND t1.hausnr = 1;
dafox [ Mo, 22 Oktober 2007 16:01 ] [ ID #1851637 ]
PHP » de.comp.lang.php.datenbanken » Re: Abfrage mySQL

Vorheriges Thema: Abfrage mySQL (nochmal)
Nächstes Thema: PHPMyadmin mit kaputten Sonderzeichen