Parameter-Abfrage in MYSQL

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

dirkolb
Beiträge: 3
Registriert: So, 26.01.2014 21:10

Parameter-Abfrage in MYSQL

Beitrag 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
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Parameter-Abfrage in MYSQL

Beitrag 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.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
dirkolb
Beiträge: 3
Registriert: So, 26.01.2014 21:10

Re: Parameter-Abfrage in MYSQL

Beitrag 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
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Parameter-Abfrage in MYSQL

Beitrag 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
dirkolb
Beiträge: 3
Registriert: So, 26.01.2014 21:10

Re: Parameter-Abfrage in MYSQL

Beitrag 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
Antworten