@Frank: Danke! Leider muss ich da noch für PHP4 proggen (4.4.7) :/
Naja, dann pappst du die Query halt wieder mit sprintf zusammen und verwendest trotzdem COALESCE .. und dazu NULLIF und den Surrogatwert -1.
NULLIF(arg1, arg2) gibt NULL zurück wenn arg1 = arg2
Und den Fall mit NULL können wir ja schon mit COALESCE behandeln
WHERE Spalte = COALESCE(NULLIF(%s,-1), Spalte)
-1 ist gebräuchlich, da auto_increment spalten meistens mit +1 anfangen zu zählen und du für einen Schlüsselwert -1 äussert selten Daten haben wirst, in einer normalen Welt, auch unter MySQL
Gruss, Frank
P.S: bitte nicht immer alles zitieren wenn du dich gar nicht darauf beziehst. TOFU Problem ;))