За последние 24 часа нас посетили 17557 программистов и 1724 робота. Сейчас ищут 1574 программиста ...

Как проверить и обновить данные в одном запросе?

Тема в разделе "PHP и базы данных", создана пользователем pr0n1x, 16 авг 2006.

  1. pr0n1x

    pr0n1x Активный пользователь

    С нами с:
    30 мар 2006
    Сообщения:
    486
    Симпатии:
    2
    Адрес:
    Киев
    Подскажи пожалуйста как можно выполнить команду update, чтобы она сначала проверяла условие, а потом обновляла данные.

    Например:

    В базе данных есть поле start_date (тип datetime).
    Мне нужно в одном запросе сделать так.
    Если start_date не равно NULL тогда обновить данные на сегоднешнюю дату, если там уже есть какае-то дата, тогда ничего не трогать, все оставить так как есть.

    Можно ли вообще так сделать?
     
  2. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    ты к какому-то конкретному человеку обращаешься?

    запрос будет выглядеть примерно так:
    Код (Text):
    1. UPDATE table SET start_date=NOW() WHERE id IN (SELECT id FROM table WHERE start_date IS NOT NULL)
     
  3. vb

    vb Активный пользователь

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    simpson
    тебе плохо стало? :)
    Код (Text):
    1. UPDATE table SET start_date=NOW() WHERE start_date IS NULL
    Ты уж определись когда править - если NULL или NOT NULL :)
     
  4. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    может быть :lol: