MySQL mehrfach WHERE

HoB

HoB
ID: 79596
L
22 April 2006
2.521
74
hi leute.

es ist doch sicherlich möglich mit...

update user set couch = 0 WHERE user = 'test1' AND 'test'

...2 sachen gleichzeitig zu machen. was an meinem code ist falsch?

user test1 und test stehen im feld couch auf 1 und ich möchte mit diesem befehl beide bei couch auf 0 setzen. 8O
 
Ein Ausdruck sieht immer in der Form "feld = wert" aus. Du hast nur den Wert stehen, drum gibts n Fehler.

Entweder "feld = wert OR feld = wert2" oder mit "feld IN (wert, wert2)" arbeiten.

Ich behaupte, es gibt in deiner Tabelle user keinen, der test1 und test gleichzeitig ist, also nicht verunden, sondern verodern.
 
nein nein... nicht in einer tabelle ein user, sondern es handelt sich um 2 user, die ich gleichzeitig auf 0 setzen will.
 
wenn ich OR benutze, ändert sich der wert bei user test ODER bei test1. je nachdem wo er noch auf 1 steht... aber doch nicht bei beiden. oder doch???? :-?
edit: habs gerade versucht... ändert sich nur bei einem user.

...und IN kann ich doch nach der zeile...
update user set couch = 0 WHERE user =
...nicht mehr setzen, weil doch das feld couch noch vor dem WHERE ist, oder?????? 8O
 
wenn ich OR benutze, ändert sich der wert bei user test ODER bei test1.
Richtig. Wie gesagt: Ich behaupte, du hast keinen, wo es für beides gilt.

IN() ist eine Abkürzung für eine allgemeine Veroderung von Werten nach einem gemeinsamen Feld.
 
ich versuch nochmal.. ;)

also:

user a hat im feld free den wert 1 stehen
user b hat im feld free den wert 1 stehen
user c hat im feld free den wert 1 stehen
user d hat im feld free den wert 1 stehen
user e hat im feld free den wert 1 stehen
user f hat im feld free den wert 1 stehen

und ich möchte nun mit einem einzigen befehl user a,b,c und d auf 0 setzen. user e und f sollen auf 1 bleiben.

geht das echt mit IN oder OR????
 
und ich möchte nun mit einem einzigen befehl user a,b,c und d auf 0 setzen. user e und f sollen auf 1 bleiben.
Das geht nicht. Was is der Unterschied zwischen a, b, c, d und e, f? Du brauchst schon einen Diskriminator.
geht das echt mit IN oder OR????
Wenn du einen Diskriminator hast, ja.

edit:
Ok, es scheint - sorry, aber deine Beispiele sind sehr merkwürdig und missverständlich -, als sei user der Diskriminator. Also:
UPDATE foo SET free = 0 WHERE user IN (a, b, c, d)
 
ja genau! das haut hin! :biggrin:

boah. ich dachte schon, dass es mir die birne zerfetzt! ;)

danke mann! :yes: