Thomas: Multiple Kriterien für 1 Spalte?

Beitrag lesen

Hallo,

SELECT keyID FROM tab1 WHERE (intID like '2') and (intID like '3')
Warum muß es eigentlich immer LIKE sein?
Und warum muß es immer eine Stringkonvertierung sein?
Entschuldige bitte, wenn ich vielleicht den Falschen erwische, aber das kommt hier im Forum so oft vor, daß ich schon annehme, daß es System hat. Was ist an intID = 3 so verkehrt.

Normalerweise nichts. Das Beispiel war etwas vereinfacht - die "echten" Werte sind solche netten Konstrukte wie '5.1' oder '9.1.9'. Das war nicht meine Idee, ich muss nur auf die DB noch was zusätzlich aufsetzen. Umstrukturieren ist damit nicht drin :-(

versagt genauso wie

Es versagt, weil es unmöglich ist, Datensätze zu finden, bei denen ein und das selbe Feld den Wert 2 _und_ 3 haben kann.
Aber Du kannst Datensätze finden, bei denen das Feld den Wert 2 _oder_ 3 hat.

OK, schwarz auf weiß ist das doch mal ein Wort. Es war an sich schon etwas unwahrscheinlich, aber man weiß ja manchmal nie.

Natürlich kann es auch mal passieren, dass intID 2,5,7,10,40 gesucht sind.

Da Du nicht gesagt hast, welche Datenbank Du verwendest, schließe ich aus, daß es eine ist, bei der
SELECT foo,bar FROM bla WHERE blub IN (2,5,7,10,40)

» funktionieren würde, wie z.B. die, die sich gerade im Webumfeld einer großen Beliebtheit erfreut;-)

Fast ;-) Noch ist es ein Access-Teil, bald aber MySQL.

Also bleibt Dir nichts anders übrig, als daß Du eine Aneinanderreihung der einzelnen Bedingungen vornimmst.

Naja, und das kostet enorme Server-Zeit. Daher hoffte ich ja auf eine bessere Lösung, die mir entgangen war...

PS: Abfragen wie diese sind IMHO übrigens der einzige Grund, warum es in SQL das Schlüsselwort DISTINCT gibt.

Jepp.

So, dann bastel ich mal das Ding etwas um.

Danke & Gruß

Thomas