Seite 1 von 1

Parameter-Abfrage in MYSQL

Verfasst: So, 26.01.2014 22:34
von dirkolb
Hallo,

habe Datenbank nach mehreren Daten-Verlusten von HSQL auf MYSQL umgestellt, aber viele Funktionen sind anders

In HSQL funktioniert die unvollständige Parameter-Abfrage,:

Code: Alles auswählen

SELECT `Kunde`, `Artikel`, `Modell` FROM `Artikel-Tabelle` WHERE `Kunde` = ( :qKunde || '%' )
in MYSQL bekomme ich nach langem Suchen, vielen Lesen und probieren, entweder alle oder keine Datensätze angezeigt,
aber nicht die laut Parameter.

Wo liegt mein Fehler?
Danke
Dirk

Re: Parameter-Abfrage in MYSQL

Verfasst: Mo, 27.01.2014 08:41
von pmoegenb
Hallo Dirk,

es ist unwahrscheinlich, dass Dein Beispiel-Code mit HSQLDB funktioniert.

Ersetze in der WHERE-Klausel das Zeichen = durch LIKE. Ob die Klammern beim Parameter für MySQL erforderlich sind, kann ich nicht beurteilen, da ich andere Datenbanken verwende und z. B. bei Firebird nicht erforderlich sind.

Re: Parameter-Abfrage in MYSQL

Verfasst: Mo, 27.01.2014 13:10
von dirkolb
Hallo,

Danke erstmal, der Code war schon auf MYSQL umgeschrieben.
Die Abfrage funktioniert jetzt schon, aber ich muß den kompletten, richtigen Kundennamen in der Abfrage eingeben

Code: Alles auswählen

SELECT `Kunde`, `Artikel`, `Modell` FROM `Artikel-Tabelle` WHERE `Kunde` LIKE :qKunde || '%
Das letzte Stück vom Code (|| '%') , man braucht bei der Abfrage nur die Anfangsbuchstaben als Parameter eingeben,
gibt es sowas Für MYSQL auch?
Ich finde dazu nichts...

Danke Dirk

Re: Parameter-Abfrage in MYSQL

Verfasst: Mo, 27.01.2014 16:17
von RobertG
Hallo Dirk,

die Verbindung von einzelnen Inhalten über || funktioniert mit MySQL nicht. Du brauchst CONCAT.

Code: Alles auswählen

SELECT `Kunde`, `Artikel`, `Modell` FROM `Artikel-Tabelle` WHERE `Kunde` LIKE CONCAT(:qKunde , %)
Gruß

Robert

Re: Parameter-Abfrage in MYSQL

Verfasst: Mo, 27.01.2014 18:05
von dirkolb
Hallo,
so funktionierts, das % noch in die Strichlein und es geht

Code: Alles auswählen

SELECT `Kunde`, `Artikel`, `Modell` FROM `Artikel-Tabelle` WHERE `Kunde` LIKE CONCAT (:qKunde , '%')
Vielen Dank für die Hilfe
Dirk