Hallo,
Eigentlich müsste es funktionieren, aber irgendwas klappt nicht:
SELECT id, nr, name
FROM titel
WHERE (nr = '2' OR '175' OR '212')Es werden alle Einträge ausgegeben,
das ist ja auch das, was das richtige Ergebnis dieser Abfrage ist - auch wenn es von Dir nicht gewünscht ist.
doch es sollen nur die ausgegeben werden die bei
nr. 2 oder 175 oder 212
stehen.
Wenn Du das mit OR schreiben wolltest, so lautete die Bedingung:
(nr = 2 OR nr = 175 OR nr = 212)
im SQL-Dialekt von MySQL auch
(nr = '2' OR nr = '175' OR nr = '212')
Erklärung:
OR verknüpft Ausdrücke und eine nichtleere Zeichenkette wie '175' oder auch '212' wird als wahr angesehen. Dadurch wird der gesamte Ausdruck immer wahr sein. Deswegen werden alle Datensätze zurückgeliefert.
Die bessere und vor allem lesbarere Variante mit IN (die nicht MySQL-spezifisch ist) hat Dir Marco bereits aufgezeigt.
Freundliche Grüße
Vinzenz