AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi WHERE über alle Felder

WHERE über alle Felder

Ein Thema von Angel4585 · begonnen am 20. Apr 2006 · letzter Beitrag vom 21. Apr 2006
Antwort Antwort
Seite 1 von 2  1 2   
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

WHERE über alle Felder

  Alt 20. Apr 2006, 14:10
Datenbank: MySQL • Version: 5 • Zugriff über: ZEOS
Hallo zusammen,

wie kann ich eine WHERE Klausel über alle Felder machen ohne jedes Einzelne anzugeben?

Also sowas wie

SQL-Code:
SELECT * FROM Tabelle
WHERE * LIKE "%Suchbegriff%"
leider funktioniert dies so nicht. Weis jemand wie ich das schaffe?

MfG Angel4585
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.248 Beiträge
 
Delphi 2006 Professional
 
#2

Re: WHERE über alle Felder

  Alt 20. Apr 2006, 14:10
Zitat von Angel4585:
... Weis jemand wie ich das schaffe? ...
Hai Angel4585,

ich fürchte das es nicht gehen wird. Du musst schon die Felder angeben.
Stephan B.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: WHERE über alle Felder

  Alt 20. Apr 2006, 14:13
hmm.. OK.. aber die Frage wars Wert... THX Sharky




MÖÖÖPPP

Wie sieht dann das Statement aus?

SQL-Code:
SELECT * FROM Tabelle
WHERE Feld1,Feld2,Feld3,..,Feldn LIKE "%Suchbegriff%"
scheint nicht zu gehen.

Muss ich den Suchbegriff etwas für jedes Feld extra angeben??


Also so:

SQL-Code:
SELECT * FROM Tabelle
WHERE (Feld1 LIKE "%Suchbegriff%")OR(Feld2 LIKE "%Suchbegriff%")
?!?!

Also meine Version ist da etwas kürzer , oder kann ich das doch irgendwie abkürzen?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.804 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: WHERE über alle Felder

  Alt 20. Apr 2006, 19:29
Zitat:
Muss ich den Suchbegriff etwas für jedes Feld extra angeben??
Ja!
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#5

Re: WHERE über alle Felder

  Alt 20. Apr 2006, 19:57
Ich weiß nicht ob es performanter ist aber bestimmt kürzer Einfach die Felder per Stringverknüpfung verketten

SELECT * from tabelle where feld1||feld2||feld3 like "%suchbegriff%"; P.S: mit || ist die String-Verknüpfung gemeint, falls es nicht der Standard ist ...
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.804 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: WHERE über alle Felder

  Alt 20. Apr 2006, 20:06
@jim_raynor: Bist du sicher das diese Verkettung in der where-clause funktioniert?
Markus Kinzler
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#7

Re: WHERE über alle Felder

  Alt 20. Apr 2006, 20:55
Moin
hab mal grad eben den Vorschlag von jim_raynor getestet -> Jau, das geht so mit der Verkettung der Felder, sprich suchen über alle Felder! Zumindest bei meiner DB Absolute Database bekomme ich entsprechende Ergebnisse
Hätt ich ehrlich gesagt nicht für möglich gehalten, dass das funzt...
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: WHERE über alle Felder

  Alt 20. Apr 2006, 21:57
Das geht mit Sicherheit so. Ob die Ergebnismenge nun aus einzelnen Feldern oder zusammengesetzten besteht ist völlig egal. In diesem Ergebnisfeld wird dann nachgeschaut, ob der Suchbegriff darin vorkommt.

Das hier müsste auch gehen :

SELECT * from TABELLE where upper (Feld1||Feld2) like '%SUCH%'; Vielleicht noch mit ein paar Decimals per CAST bestücken als Würze. Aber die Idee ist nicht schlecht ! Werde das in (zurückgestelltem) konkreten Fall sogar so machen. Da verwechselt ein Penner immer die Anrede und den Namen und wundert sich, daß nichts gefunden wird.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
6.015 Beiträge
 
Delphi 2010 Professional
 
#9

Re: WHERE über alle Felder

  Alt 20. Apr 2006, 22:27
Hallo,

noch eine Bemerkung: wenn Feld1 den Eintrag "Mr" und Feld2 den Eintrag "Spock" hat liefert die Konkatenierungslösung bei der Suche nach "MrSpock" auch einen Treffer
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Peter Mössinger

Registriert seit: 26. Jul 2005
Ort: Mainz
31 Beiträge
 
Delphi 7 Professional
 
#10

Re: WHERE über alle Felder

  Alt 20. Apr 2006, 22:27
Zitat von Hansa:

SELECT * from TABELLE where upper (Feld1||Feld2) like '%SUCH%';
Vielleicht findest Du so aber zu viel. Stell Dir vor, Feld1 hört mit SU auf und Feld2 beginnt mit CH. Durch den Concat würde der Satz gefunden werden. Vielleicht sollte man es eher so machen:

SELECT * from TABELLE where upper (Feld1 || '-' || Feld2 || '-' ...) like '%SUCH%'; und '-' ist ein Wert, der in den Suchausdrücken nicht vorkommen kann.
Peter Mössinger
Tischtennis-Ergebnisdienst des RTTV (Rheinhessischen TT Verbandes)
http://ergebnisdienst.rttv.de
Delphi + Kylix!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf