2011-05-12 6 views

ответ

6

Не нужно повторно назначать активный в вашем, тогда «set active =» делает это.

update contentpagenav 
     set active = case 
       when active = 0 then 1 
       when active = 1 then 0 
        end 
+0

Спасибо. Это сработало! –

0

Самым лёгким способом сделать это не с делом:

UPDATE contentpagenav SET active = 1-active; 

Если вы упрощая вопрос (вы должны использовать СЛУЧАЙ по какой-то причине):

UPDATE contentpagenav SET active = CASE active 
    WHEN 1 THEN 0 
    ELSE THEN 1 
END; 

Если более двух возможных значений для активных:

UPDATE contentpagenav SET active = CASE active 
    WHEN 1 THEN 0 
    WHEN 0 THEN 1 
    WHEN 2 THEN ... 
    ELSE ... 
END; 
+0

-1 для не очень четкого ответа, трудно разобраться в том, что вы объясняете. – dnolan

+0

не получить snarky, но я не думал, что 4 слова будут проблемой. Предполагая, что единственные значения у него равны 0 и 1, это принимает 1 и превращает его в 0 (1-1 = 0) и a 0 в 1 (1-0 = 1). Если у него есть другие значения, он может бросить предложение WHERE, чтобы ограничить это значением <2 или явно 0 или 1. Как я понимаю, инструкции CASE медленны, поэтому, когда их проще избежать, вам нужно. Извините, что не блокировал два других ... Я прошу не знать, как правильно настроить блоки здесь. Кнопка предварительного просмотра будет приятной. – BobB

+0

Предполагаю, что вам нужны кепки и многострочные кодовые блоки. Я думаю, что это оба раздражает: P особенно многострочный код, который нелегко редактировать в интерфейсе SQL командной строки linux;) В любом случае, исправлено выше – BobB

Смежные вопросы