PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : simple noobfrage zu sql-befehl


Gast
2004-01-24, 19:37:42
angenommen ich habe eine datenbank in der die felder mit 'a' oder 'b' gefüllt sind, vereinzelt aber auch 'a / b'. nun möchte ich die datenbank nach 'b' durchsuchen und die felder mit 'a / b' sollen auch angezeigt werden, weiss aber nicht wie das geht.
wenn ich folgendes schreibe:
SELECT *
FROM meinedatenbank
WHERE spalte1=a;
werden nur die felder rausgesucht die =a sind, aber ich brauche nen abfragebefehl der sinngemäß 'beinhaltet a' lautet. ich habs schon mit '...WHERE spalte1 includes a;' und ähnlichem probiert (sql soll ja nah am englischen sein :)), aber das klappt nicht :(
ist sicher ganz einfach, drum schonmal danke für antworten

Gast
2004-01-24, 19:39:13
hmm, hab da was vertauscht
soll natürlich heissen:
'nun möchte ich die datenbank nach 'a' durchsuchen...', sonst macht mein code ja keinen sinn

Aqualon
2004-01-24, 20:15:21
SELECT *
FROM meinedatenbank
WHERE spalte1 like a%;


Das liefert alle Einträge, bei denen Spalte 1 mit a losgeht. Zumindest wenn ich dich richtig verstanden habe und 'a' bzw. 'a / b' Strings sind.

Aqua

Gast
2004-01-24, 21:05:38
cool, schonmal nicht schlecht. aber gibts denn keinen befehl der sinngemäß als 'beinhaltet' fungiert?
denn der 'like' befehl funzt ja wenn ich das recht verstanden habe z.b. nicht, wenn ich dann alles nach 'b' durchsuchen will und die 'a / b' felder da auch drin sein sollen, weil die ja nicht mit 'b' anfangen, aber 'b' drin vorkommt..

Aqualon
2004-01-24, 21:15:08
Das % gibt an, dass an dieser Stelle beliebig viele Zeichen kommen können. Bei Suche nach b, musst du also like %b nehmen.

Aqua

Gast
2004-01-24, 23:03:49
gut, ich denke, soweit habe ich das jetzt verstanden, allerdings habe ich mich vorhin schlecht ausgedrückt (auch weil ich von der materie eigentlich keinen plan habe), also neuer versuch das ganze zu konkretisieren:
wenn ich
SELECT *
FROM meinedatenbank
WHERE spalte1=a;
eingebe werde ich ja beim ausführen der abfrage nach einem wert für a gefragt. er sucht also nicht nach einer spalte in der a steht, sondern nach dem was ich für die variable a eingebe.
nun ist es so:
in meinen spalten steht z.b. entweder 'bla', 'narf' oder 'bla / narf' und ich will nun alle felder nach 'narf' durchsuchen, indem ich bei der abfrage für 'a' 'narf' eingebe.
jetzt habe ich mir gedacht, dass ganze vielleicht so zu schreiben:
SELECT *
FROM meinedatenbank
WHERE spalte1 like %a (also nach allem durchsuchen was für die variable a eingegeben wurde), aber das macht access irgendwie nicht mit.
ich hab irgendwie keinen plan wie ich vorgehen muss, und bin für weitere ratschläge dankbar..

Xmas
2004-01-25, 02:25:02
SELECT * FROM meinetabelle WHERE spalte1 LIKE "*" & a & "*";

Gast
2004-01-25, 11:37:18
ahh, jetzt, ja!
so klappts, danke

Gast
2004-01-27, 08:51:27
Der Query sollte schneller sein mit:

SELECT spalte1 FROM meintetabelle WHERE spalte1='a' OR spalte1='a/b';

Gast
2004-01-27, 11:25:22
da wirst du wohl recht haben, aber ich habe das beispiel natürlich nen bisschen vereinfacht, sprich es gibt auch noch nen c und nen d und dafür ist obengenannte variante wohl doch besser geeignet..