Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Bollean сменить false|true либо true|false одним запросом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Реально ли сделать 1 запрос на смену boolean в mysql
DonTisto
Отправлено: 11 Октября, 2013 - 08:19:12
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




Есть таблица со значениями и полем active.
Active типа boolean. Возможно ли сменить его значение на противоположное одним запросом?
 
 Top
avtor.fox
Отправлено: 11 Октября, 2013 - 08:31:09
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




тьфу, не так понял.
Вам наверно нужно использовать подзапрос и иф
Спойлер (Отобразить)

(Добавление)
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `table` SET `boolean` = IF(`boolean` = FALSE, TRUE, FALSE) WHERE `collumn` = 'value'

(Отредактировано автором: 11 Октября, 2013 - 08:32:55)

 
 Top
DonTisto
Отправлено: 11 Октября, 2013 - 09:25:06
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2013  


Помог: 0 раз(а)




avtor.fox пишет:
тьфу, не так понял.
Вам наверно нужно использовать подзапрос и иф
Спойлер (Отобразить)

(Добавление)
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `table` SET `boolean` = IF(`boolean` = FALSE, TRUE, FALSE) WHERE `collumn` = 'value'


О, спасибо. Надо будет про IF почитать. А то я уж думал воротить что-то вроде:
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `table` SET `boolean` = abs('boolean`-1) where ....
 
 Top
Мелкий Супермодератор
Отправлено: 11 Октября, 2013 - 09:33:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Так же можно воспользоваться свойствами приведения типов:
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `table` SET `boolean` = (!`boolean`) WHERE `collumn` = 'value'


-----
PostgreSQL DBA
 
 Top
Ch_chov
Отправлено: 11 Октября, 2013 - 10:32:27
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




http://stackoverflow[dot]com/questions/665002/is-there-a-way-in-mysql-to-reverse-a-boolean-field-with-one-query
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB