2016-03-19 1 views
0

У меня есть таблица событий. (Я не создавал эту таблицу)Обновление нескольких строк в MySQL с похожим контентом

Поля идентификатор, event_id, дата_начала end_date, e_status

Единственное, что является не уникальным является идентификатор. Остальные одинаковы для всех строк.

Как обновить статус?

Я пробовал:

UPDATE events 
    SET e_status = 
     CASE event_id 
      WHEN 12830 THEN 0 
     END 
    WHERE start_date = '2016-06-24 17:30:00' 
    AND end_date = '2016-06-24 18:00:00' 
    AND event_id IN (12830) 

Обновления не были изменены.

+0

Таким образом, вы просто хотите изменить статус определенного события между двумя датами? – xpy

ответ

0

Если все данные одинаковы для всех строк, кроме столбца id, в предложении WHERE не должны быть никаких критериев. У вас должно быть только одно:

UPDATE events 
SET e_status = 
    CASE event_id 
     WHEN 12830 THEN 0 
    END 

И на самом деле вам даже не нужен оператор case. Если все данные одинаковые, кроме id, то не все ли строки имеют event_id = 12830? Вы можете просто ==>

UPDATE events 
set e_status = 0 
+0

Извините, я все еще новичок в этом, поэтому я все еще изучаю форматирование ответов. Я неправильно форматировал код. –

+0

Вы можете отредактировать свой ответ. –

0

перед редактированием

ID Event Status 
1 USA  0 
2 UK  0 
3 Canada 0 

Вашего простой запрос будет

update event set status=1 

После редактирования

ID Event Status 
1 USA  1 
2 UK  1 
3 Canada 1 

и если вы хотите предназначаться конкретная запись просто использует w здесь установлен пункт событие

обновление состояния = 1, где идентификатор = 1

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