[РЕШЕНО]SQL запрос для массового Включение/Выключение комментирования

Главные вкладки

Аватар пользователя Goodseeker Goodseeker 21 февраля 2014 в 1:33

Правильно ли я сделал запрос в базу данных для изменения значений в столбце comment?

Мне нужно чтобы у всех нод типа ori_product включилось комментирование.
Для этого в базе данных в таблице node в столбце comment нужно установит значение '2' - верно?

Тогда запрос получится такой:

UPDATE node SET comment =REPLACE(comment, '0', '2') WHERE TYPE = 'ori_product';

node - таблица
comment - столбец
REPLACE - заменяем значения с '0' на '2'
'0' - находим это значение
'2' - заменяем на это значение

За скобками пишется дополнительное условие, в котором выбираю только нужные мне типы данных у которых нужно изменить значения, т.е. отфильтровываю тип данных ori_product

WHERE - где
type - столбик по которому делается выборка нужного типа
ori_product - нужный мне тип данных

Правильное решение, для изменения статусов комментирования:

UPDATE `node` SET comment = 2 WHERE TYPE = 'ori_product';
UPDATE `node_revision` SET comment = 2 WHERE nid IN (SELECT nid FROM node WHERE TYPE = 'ori_product')

Комментарии

Аватар пользователя Lotar Lotar 21 февраля 2014 в 2:01

Я в базу не смотрел, но сдается мне булево значение будет либо 0 выкл, либо 1 вкл. А 2 это какая-то другая стадия...

Аватар пользователя drupby drupby 21 февраля 2014 в 2:12

"Lotar" wrote:

Я в базу не смотрел, но сдается мне булево значение будет либо 0 выкл, либо 1 вкл.

а кто сказал , что там булево значение - там integer либо 1 , либо 2 , либо 0

node.install

'comment' => array(
        'description' => 'Whether comments are allowed on this node: 0 = no, 1 = closed (read only), 2 = open (read/write).',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),
Аватар пользователя Lotar Lotar 21 февраля 2014 в 3:13

drupby wrote:
"Lotar" wrote:

Я в базу не смотрел, но сдается мне булево значение будет либо 0 выкл, либо 1 вкл.

а кто сказал , что там булево значение - там integer либо 1 , либо 2 , либо 0

node.install

'comment' => array(
        'description' => 'Whether comments are allowed on this node: 0 = no, 1 = closed (read only), 2 = open (read/write).',
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
      ),

Буду иметь ввиду.

Аватар пользователя Goodseeker Goodseeker 21 февраля 2014 в 14:29

Kaer wrote:
http://stanislavromanov.ru/blog/kak-izmenit-status-kommentariev-dlya-bol...

Спасибо вам.
Ваше решение оказалось правильнее моего

UPDATE `node` SET comment = 2 WHERE TYPE = 'ori_product';
UPDATE `node_revision` SET comment = 2 WHERE nid IN (SELECT nid FROM node WHERE TYPE = 'ori_product')