Autor Zpráva
jak
Profil *
Ahoj. Potřeboval bych dotaz na mysql, který by provedl následující: všude, kde je povolen 1 změnit na 0 a naopak. Jak na to? Dva dotazy na to logicky napsat nemůžu.
Jan Tvrdík
Profil
jak
Můžeš to řešit 3 dotazy nebo počkat jestli někdo nevymyslí nějaký fígl.
Hugo
Profil
update `tab` set
`povolit` = !`povolit`
jak
Profil *
Nemůžu, povolen nesmí být jiná hodnota, než 0 čí 1, protože nad mysql běží aplikace, která toto neustále čte.
jak
Profil *
tohle byla odpověď na pro Jan Tvrdík
jak
Profil *
Hugo: tohle nefunguje, nastaví to nic, tam kde byla nula a nulu, tam kde nebylo nic, ale 1 a 0 neprohazuje.
nightfish
Profil
nepůjde to takhle?
update `tab` set povolit = if(povolit = 1, 0, 1)
Hugo
Profil
jak

Jaký je datový typ toho sloupce? S int by to mělo fungovat.
jak
Profil *
Hugo: enum
jak
Profil *
nightfish: to samé jako `povolit` = !`povolit`
jak
Profil *
už to jde. Podmínka musí být přesně takto: if( `povolit` = '1', '0', '1' )
Hugo
Profil
jak

To jsi měl napsat hned na začátku, že to není číslo, ale řetězec. To je poměrně důležitý údaj.
Mastodont
Profil
Pro int bych navrhnul
update `tab` set povolit = abs(povolit - 1)
nightfish
Profil
Mastodont
update `tab` set povolit = abs(povolit - 1)
vida, to je velmi šikovné...
Hugo
Profil
Mastodont

IMHO bude negace rychlejší.
Toto téma je uzamčeno. Odpověď nelze zaslat.