Klaus Mock: Multiple Kriterien für 1 Spalte?

Beitrag lesen

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.

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.

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;-)

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

Grüße
  Klaus

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