Diese Abfrage funktioniert nicht auf mysql v 5.7.18.Unterabfrage funktioniert nicht mit MySQL (Version 5.7.18)
Aber diese Abfrage funktioniert perfekt in der Vergangenheit Version von MySQL (5.5.46)
SELECT car_id FROM (
SELECT car_id ,
CASE WHEN (unix_timestamp(STR_TO_DATE(car_from, '%Y-%m-%d %H:%i:%s')) > unix_timestamp(STR_TO_DATE('2017-03-15 13:00', '%Y-%m-%d %H:%i:%s'))
|| unix_timestamp(STR_TO_DATE('2017-03-09 17:00', '%Y-%m-%d %H:%i:%s')) > unix_timestamp(STR_TO_DATE( car_to , '%Y-%m-%d %H:%i:%s'))
|| unix_timestamp(STR_TO_DATE('2017-03-15 13:00', '%Y-%m-%d %H:%i:%s')) < unix_timestamp(STR_TO_DATE('2017-03-09 17:00', '%Y-%m-%d %H:%i:%s'))
|| unix_timestamp(STR_TO_DATE( car_to, '%Y-%m-%d %H:%i:%s')) < unix_timestamp(STR_TO_DATE( car_from, '%Y-%m-%d %H:%i:%s'))
) THEN 0
ELSE 1 END as intersect_time
FROM car_booking_master
WHERE state = '1'
GROUP BY car_id
HAVING intersect_time = 1
) AS virtual
Auf der neue MySQL-Version, die ich diesen Fehler
#1064 - 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 'virtual
LIMIT 0, 25' at line 15
Haben Sie die gesamte Abfrage gebucht? Ich sehe "LIMIT" nirgendwo, aber es erscheint in der Fehlermeldung. –
ja das ist komplett bekommen Limit Text in Fehlerausgabe –
Die äußere Abfrage ergibt keinen Sinn für mich. Wenn Sie bereits nach "car_id" aggregiert haben, warum sollten Sie dann einen anderen auswählen? Übrigens hat Ihre Unterabfrage auch ein Problem, weil Sie nicht aggregierte Spalten im CASE-Ausdruck auswählen. –