Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySql Abfrage über alle Spalten einer Tabelle (https://www.delphipraxis.net/69593-mysql-abfrage-ueber-alle-spalten-einer-tabelle.html)

drschubi 17. Mai 2006 14:56

Datenbank: Mysql • Zugriff über: Zeos

MySql Abfrage über alle Spalten einer Tabelle
 
Hallo,

ich frag in meiner Anwendung folgendermassen ab:
Delphi-Quellcode:
  zquery1.SQL.Text := 'Select * from `aa_shopdaten` where `dlan` like ''' + edsearch.Text +'%'' order by `shopnr` ASC;';
Hier suche ich nur in der Spalte Dlan.

Wenn ich mittels Concat mehrere Spalten zum Suchen auswähle, dann sucht er mir trotzdem nur in der ersten. Mit Where = 1 funktionert es ebenfalls nicht alle Spalten nach einem gewünschten Wort zu durchsuchen.

Welchen Befehl muss ich verwenden.

Die Mysql-Referenz arbeitet mit Match und Against. Gibt es keine eine Möglichkeit ähnlich einem " WHERE *" für alle Tabellen anzugeben?

Danke Schubi

mkinzler 17. Mai 2006 15:03

Re: MySql Abfrage über alle Spalten einer Tabelle
 
Hast du es schon so versucht:
Delphi-Quellcode:
zquery1.SQL.Text := 'Select * from `aa_shopdaten` where `feld1` like ''' + edsearch.Text +'%'' or `feld2` like ''' + edsearch.Text +'%'' order by `shopnr` ASC;';

drschubi 17. Mai 2006 15:08

Re: MySql Abfrage über alle Spalten einer Tabelle
 
Hallo mkinzler,

so muss ich doch auch jede Spalte einzeln angeben, oder? Ich möchte ja z.Bsp. mit einem WildCard erreichen, daß er in allen Spalten sucht, ohne dass ich sie Explizit nennen muss,

Gruss Schubi

Tubos 17. Mai 2006 15:16

Re: MySql Abfrage über alle Spalten einer Tabelle
 
Wenn du das machen musst, hast du vermutlich einen Design-Fehler in deiner Datenbank.

drschubi 17. Mai 2006 15:20

Re: MySql Abfrage über alle Spalten einer Tabelle
 
Hallo Tubos,
was meinst du mit Designfehler, wass muss ich mit der Tabelle tun um mit welchem Select-Befehl alle Spalten auf einmal zu durchsuchen?

Gruss Schubi

Tubos 17. Mai 2006 16:41

Re: MySql Abfrage über alle Spalten einer Tabelle
 
Zitat:

wass muss ich mit der Tabelle tun um mit welchem Select-Befehl alle Spalten auf einmal zu durchsuchen?
Das geht in SQL nicht. Oder, besser gesagt: ich bin mir sicher dass es nicht geht, da ich von sowas noch nie gelesen habe.

Erklär doch mal, was du machen willst! Was ist in der Tabelle drinnen?

drschubi 17. Mai 2006 17:06

Re: MySql Abfrage über alle Spalten einer Tabelle
 
Hi Tubos,

über ein Editfeld will ich die Datensätze filtern, in denen ein bestimmtes Wort vorkommt.
Da ich vorher nicht weiss, in welcher Spalte dieses Wort steht, muss ich in allen Spalten suchen.

Jetzt habe ich mir gedacht, alle Feldnamen aus der Tabelle zu holen, sie mit Komma trennen und in die Selectabfrage zur Laufzeit einzufügen, scheitere gerade an dem Einfügen der Kommas in die Stringliste.

Gruss Schubi

drschubi 17. Mai 2006 17:47

Re: MySql Abfrage über alle Spalten einer Tabelle
 
Habe es jetz ganz anders erledigt.
In eine Combobox hole ich mir alle Feldefinitionen rein und suche dann im Editfeld mittels Wildcard in der vorher ausgewählten Spalte. So kann ich wenigstens schon mal die Suche einschränken. Reicht ja auch. Danke an alle

Gruß Schubi

jfheins 24. Jun 2007 21:53

Re: MySql Abfrage über alle Spalten einer Tabelle
 
Ich würde gerne das Thema nochmal kurz hochholen,

denn würde jetztauch gerne darauf verzichten, ale spalten zu nennen ...

Zu meinem Fall:

Ich habe ein Textfeld in das der Benutzer mehrere Begriffe eingeben kann (durch leerzeichen getrennt). Jetzt will ich ihm alle Einträge in der Datenbank anzeigen, die in irgendweiner Spalte irgendeinen der Begriffe enthält.

Wie mache ich das? Ich möchte nur seehhhr ungern eine Seitenlange SQL-Abfrage schicken mit unzähligen or's ...

Danke schonmal :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 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