![]() |
Datenbank: mySql • Version: 4 • Zugriff über: Zeos 6
MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Hallo liebe Delphianer,
stehe mal wieder aufm Schlauch. Meine Abfrage zeigt einen Datensatz mit leerem Feld nicht an.
Code:
-------------------------------------------------------------------------------------
SQLSUCH := 'SELECT * from tbl_kunde WHERE KD_STATUS = :sLEER';
dataM.ZQueryKUNDE.SQL.Clear; dataM.ZQueryKUNDE.SQL.Text := SQLSUCH; dataM.ZQueryKUNDE.ParamByName('sLEER').Value := NULL; dataM.ZQueryKUNDE.Active := true; kd_nr Nachname Status KD_STATUS ORT ------------------------------------------------------------------------------------- 10010001 IMPULS-T NULL NULL Frankfurt 10020003 Werra NULL ROT Köln 10030003 Magna NULL GRÜN Frankfurt -------------------------------------------------------------------------------------- Der Erste Datensatz wird einfach nicht angezeigt. Woran könnte das liegen ?:cyclops: |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Das muss IS NULL heißen und nicht = NULL.
|
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Hallo S.H.A.R.K
vielen Dank für Deine Antwort.
Delphi-Quellcode:
Hier bekomme ich folgende Fehlermeldung:
SQLSUCH := 'SELECT * from tbl_kunde WHERE KD_STATUS = :sLEER';
dataM.ZQueryKUNDE.SQL.Text := SQLSUCH; dataM.ZQueryKUNDE.ParamByName('sLEER').Value := IS NULL; dataM.ZQueryKUNDE.Active := true; [Fehler] tools.pas(102): Ausdruck erwartet, aber 'IS' gefunden
Delphi-Quellcode:
SQLSUCH := 'SELECT * from tbl_kunde WHERE KD_STATUS = :sLEER';
dataM.ZQueryKUNDE.SQL.Text := SQLSUCH; dataM.ZQueryKUNDE.ParamByName('sLEER').Value := ISNULL; dataM.ZQueryKUNDE.Active := true; Hier bekomme ich folgende Fehlermeldung: [Fehler] tools.pas(102): Undefinierter Bezeichner: 'ISNULL' |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Probier mal:
Code:
SQLSUCH := 'SELECT * from tbl_kunde WHERE KD_STATUS IS NULL';
|
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
In SQL sind Vergleiche mit NULL nicht möglich bzw. liefern immer false.
Statt dessen gibt es die Klauseln IS NULL und IS NOT NULL. NULL kann allerdings deshalb nicht als Parameter an die Query übergeben werden. |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
... und noch eine Variante ergibt eine leere Anzeige :
Delphi-Quellcode:
SQLSUCH := 'SELECT * from tbl_kunde WHERE KD_STATUS = :sLEER';
dataM.ZQueryKUNDE.SQL.Text := SQLSUCH; dataM.ZQueryKUNDE.ParamByName('sLEER').ISNULL; dataM.ZQueryKUNDE.Active := true; |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Hallo idefix,
besten Dank für deinen Hinweis, so funzt es :
Delphi-Quellcode:
Also nix mit ParamByName ?
SQLSUCH := 'SELECT * from tbl_kunde WHERE KD_STATUS IS NULL';
dataM.ZQueryKUNDE.SQL.Text := SQLSUCH; // dataM.ZQueryKUNDE.ParamByName('sLEER').ISNULL; dataM.ZQueryKUNDE.Active := true; |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Geht mit Null einfach nicht. Ist einer von zwei Werten NULL, dann schlägt jeder Vergleich fehl, das Ergebnis ist nämlich dann immer NULL (und nicht true oder false), egal ob auf Gleichheit oder auf Ungleichheit abgefragt wird.
NULL wird allerdings auch als false interpretiert, ebenso wie seine Negation, also werden die entsprechenden Datensätze nie angezeigt. |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Delphi-Quellcode:
dataM.ZQueryKUNDE.SQL.Text :=
'SELECT * FROM tbl_kunde WHERE COALESCE(KD_STATUS, '''') = :sLEER'; dataM.ZQueryKUNDE.ParamByName('sLEER').Value := ''; dataM.ZQueryKUNDE.Active := true; |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Delphi-Quellcode:
SQLSUCH :=
'SET @SUCH_STATUS = :SUCH_STATUS;'#13#10 + 'SELECT * from tbl_kunde WHERE ( @SUCH_STATUS IS NULL AND KD_STATUS IS NULL OR KD_STATUS = @SUCH_STATUS );'; dataM.ZQueryKUNDE.SQL.Text := SQLSUCH; dataM.ZQueryKUNDE.ParamByName('KD_STATUS').Clear; // Das geht jetzt auch // dataM.ZQueryKUNDE.ParamByName('KD_STATUS').Value := 'ROT'; dataM.ZQueryKUNDE.Active := true; |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
@Sir Rufo: Wir reden hier von MySQL nicht von MSSQL!
|
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Zitat:
|
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Achso, ich dachte immer bei MySQL funktionieren die @-Zeichen für Variablen nicht. Naja.
|
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
@Omata
Deine Variante ist aber mit Vorsicht zu geniessen, der Datenwert NULL wird dann so behandelt wie ein String der Länge 0. Das kann unerwünschte Ergebnisse zu Folge haben, NULL ist etwas anderes als ein leerer String - zumindest sollte man sich genau darüber im Klaren sein, was man da macht. |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Zitat:
Code:
;)
@foo - Session-Vaiable
@@foo - globale Variable |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
@idefix2: Das ist mir bewusst, danke für den Hinweis.
|
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Zitat:
Edit: Scheint doch zu funktionieren, sorry. |
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Dass Dir das klar ist, habe ich angenommen. Aber jemand, der nach dem Thema sucht und Deine Lösung hier findet, weiss das vieleicht nicht :)
|
AW: MySQL Query eine Spalte Leer bzw. Null, Abfrage ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz