Какой запрос нужно выполнить?

Тема в разделе "Базы данных", создана пользователем acelotuse, 22 ноя 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    Доброго времени суток, форумчане.
    По предмету "мускул" - два с минусом. Прошу разжевать )))
    Какой запрос нужно сделать, чтобы в движке ДЛЕ, таблице post, поле xfields автоматически прописать у всех новостей параметр short|222 ?
    Надеюсь я понятно выразился. Дело в том, что у меня стоит дополнительное поле в движке с названием short, и нужно, чтобы по умолчанию у всех новостей стоял параметр 222. При создании поля конечно предусмотрена установка параметра по умолчанию, но чтобы это умолчание сработало, нужно редактировать каждую новость, открывать ее, и сохранять. А это геморрно.
    Спасибо заранее и впоследствии кнопкой )))
     
  2. studentpm

    studentpm

    Регистр.:
    8 ноя 2006
    Сообщения:
    184
    Симпатии:
    132
    Код:
    UPDATE `post` SET `xfields` = 'short|222' WHERE 1;
     
    acelotuse нравится это.
  3. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    Спасибо, разобрался. Теперь другой вопрос: как сделать такой же запрос но только для новостей, ID которых четный? Возможно такое осуществить?

    ЗЫ. Запрос я понял по какому принципу строится, только вот не могу понять, что выполняет WHERE 1 ? Разве не должно быть WHERE '1' ?
     
  4. entropy

    entropy Создатель

    Регистр.:
    18 ноя 2009
    Сообщения:
    14
    Симпатии:
    12
    WHERE 1 ничего не выполняет.

    А насчет четности, можно попробовать вычислить остаток от деления на 2, либо разделить на 2, а потом умножить снова на 2.

    Например where ID%2=0;
    либо
    where (ID/2)*2=ID;
     
    acelotuse нравится это.
  5. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    нет, к сожалению не получается через такие запросы. Пробовал оба, изменяется значение ВО ВСЕХ новостях. Может есть еще способы? Может есть способ выбирать не каждую четную новость, а каждую пятую, третью?
     
  6. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    Код:
    UPDATE post SET xfields='short|222' WHERE post_id%2=0
    у меня подобный запрос прекрасно обновил записи, где идентификаторы кратны 2.
     
    acelotuse нравится это.
  7. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    А!! where post_id!! ща попробую сначала на локалке. А то я просто id прописывал без пост.
     
  8. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    вообще-то название поля идентификатора необходимо смотреть в структуре самой таблицы, я лишь навскидку предположил, что это поле post_id
     
  9. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    ааа... ну в таком случае там стоит просто id. Странно, тогда запрос, предложенный мне entropy должен был работать. Значит, я сам что-то делал не так. Надо заново все перепроверить. Спасибо, что подтвердили правильность запроса. Пойду искать свои ошибки.
     
  10. lift

    lift Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    2.226
    Симпатии:
    1.378
    Тогда уж
    Код:
    UPDATE [B][COLOR="Red"]dle_[/COLOR][/B]post SET xfields='short|222' WHERE id%2=0
    обрати внимание на выделенную часть так как на дле префикс есть обязательно а в примере запроса его нет
     
Статус темы:
Закрыта.