Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   [MySQL] Wo ist der Fehler in dieser Abfrage? (https://www.delphipraxis.net/131659-%5Bmysql%5D-wo-ist-der-fehler-dieser-abfrage.html)

MisterNiceGuy 28. Mär 2009 12:55

Datenbank: MySQL • Version: 5 • Zugriff über: php

[MySQL] Wo ist der Fehler in dieser Abfrage?
 
Hallöchen, ich arbeite mich gerade wieder in SQL ein und habe nun ein Problem mit einer Abfrage die konsequent kein Result zurückgibt:

Delphi-Quellcode:
SELECT gps_user,gps_x,gps_y, gps_comment, gps_date, gps_time FROM gps_data WHERE ((gps_date BETWEEN "2009-03-24" AND "2009-03-28") AND gps_user="jonas") ORDER BY gps_date desc, gps_time desc
Wenn ich "gps_user="jonas" entferne, gibt die Abfrage das gewünschte Resultat zurück, es muss also an der Verschachtelung liegen. Hoffe mir kann wer sagen wo der Fehler liegt!

mkinzler 28. Mär 2009 13:01

Re: [MySQL] Wo ist der Fehler in dieser Abfrage?
 
Die ganzen Schleifen sind nicht notwendig
SQL-Code:
SELECT
    gps_user,gps_x,gps_y,
    gps_comment, gps_date, gps_time
FROM
    gps_data
WHERE
    gps_user="jonas" and
    gps_date BETWEEN "2009-03-24" AND "2009-03-28";
ORDER BY
    gps_date desc, gps_time desc;
Ist der Benutzer auch genau so geschrieben?
Sonst Upper, Trunc, ...

MisterNiceGuy 28. Mär 2009 13:10

Re: [MySQL] Wo ist der Fehler in dieser Abfrage?
 
Krass ohne die Klammern funktioniert es tatsächlich, vielen Dank!! :)

Gollum 30. Mär 2009 12:02

Re: [MySQL] Wo ist der Fehler in dieser Abfrage?
 
Zitat:

Zitat von MisterNiceGuy
Delphi-Quellcode:
SELECT gps_user,gps_x,gps_y, gps_comment, gps_date, gps_time FROM gps_data WHERE ((gps_date BETWEEN "2009-03-24" AND "2009-03-28") AND gps_user="jonas") ORDER BY gps_date desc, gps_time desc

Hallo,

das Statement funktioniert auch mit Klammern. Du hast eine Klammer zu viel vor dem BETWEEN-Teil und zusätzlich noch vergessen, vor gps_user eine öffnende Klammer einzufügen.

So sollte es auch funktionieren:
SQL-Code:
SELECT gps_user,gps_x,gps_y, gps_comment, gps_date, gps_time
FROM gps_data
WHERE (gps_date BETWEEN "2009-03-24" AND "2009-03-28") AND (gps_user="jonas")
ORDER BY gps_date desc, gps_time desc

mkinzler 30. Mär 2009 12:25

Re: [MySQL] Wo ist der Fehler in dieser Abfrage?
 
Aber ich würde die Abfrage nur auf notwendieg Klammern beschränken


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz