Probleme mit SELECT IF ( ( SELECT ...

EselDompteur

Grünschnabel
Mahlzeit Gemeinde :)

ich habe mir ein kleines Script gebaut, und auf PHP 5 / MYSQL 5 funktioniert dieses auch prächtig. Nun wollte ich das einem Freund ebenfalls zur Verfügung stellen, der aber nur PHP4 / MYSQL 4 auf seiner Maschine rennen hat.

Als Fehlermeldung erhalte ich auf der Maschine folgendes:

MySQL-Fehler in File [ausgeblendet ] Line 65:
SELECT IF( ( SELECT DATE_ADD(`timestamp_accept`, INTERVAL 2 DAY ) FROM `tabelle` WHERE `uid` = 2 ) < NOW(), 1, 0 )
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT DATE_ADD(`timestamp_accept`, INTERVAL 2 DAY ) FROM `...
Die passende Query dazu:

PHP:
list( $accept ) = mysql_fetch_array( mysql_query( "SELECT IF( ( SELECT DATE_ADD(`timestamp_accept`, INTERVAL 2 DAY ) FROM `tabelle` WHERE `uid` = 2 ) < NOW(), 1, 0 )";
Ich habe keinen Fehler finden können und kann mir das nicht erklären ausser vielleicht mit der Idee, das IF() unter MYSQL 4 keine SubQuerys verträgt.
Jemand von den Spezies hier ne Idee dazu ?

lG EselDompteur
 
Auf Nachfrage und Nachschauen ;) .-. 4.0.27-standard

.. dann werde ich das wohl anders lösen müssen *grummel* ...

Das Feld enthält den Timestamp eines Datums (DATETIME) ... es soll überprüft werden, ob dieses älter als zwei Tage ist und entsprechend 0 oder 1 zurückgeben.
Jetzt werde ich das wohl über einen Umweg machen müssen, oder hast Du eine Idee wie ich das mit der alten Version lösen kann ?

lG EselDompteur
 
Hi,

hab mir die Abfrage mal näher angeschaut. Warum denn so von hinten durch die Brust ins Auge?

SQL:
SELECT 
   IF( DATE_ADD(`timestamp_accept`, INTERVAL 2 DAY ) < NOW(), 1, 0)
   FROM `tabelle` WHERE `uid` = 2

Da sollte auch MySQL4.0 sich nicht dran verschlucken.

LG
 
Zuletzt bearbeitet von einem Moderator:
Tja ääähhhhh ... Ich will nicht behaupten, das ich der Crack schlecht hin bin ^^ Hab mir alles selber beigebracht was ich so von mir gebe ...
Aber bei näherer Betrachtung deiner SQL ... frag ich mich, was mich geritten hat ...

Ich teste das aus ...

Edit: Hat wunderbar funktioniert soweit ich das sehen kann ... many Thx für die Hilfe und das Augenöffnen. Hoffe ich kann mich mal revangieren.

lG EselDompteur
 
Zuletzt bearbeitet:
Zurück