2015-08-15 3 views
0

Данные в столбце Ответ: = blahblahblahTYPE=ERRORblahblah. Затем я запускаю запрос ниже, чтобы просто нацелить строку «ОШИБКА».Обновление MYSQL из выбранного подзапроса

SELECT substr(Response, instr(Response, 'ERROR'), 5) 
    FROM table 
    WHERE id = 721451 
    AND Status = 'false' 
    AND Response LIKE '%<status>Unknown</status>%' 
    AND date >= curdate(); 

Запрос выше возвращает: ERROR.

Я в основном хочу обновить ERROR до SUCCESS без редактирования остальной информации.

Был ли запрос ниже работать? Есть лучший способ сделать это?

UPDATE table 
    SET Response = 'SUCCESS' 
    WHERE (
    SELECT substr(Response, instr(Response, 'ERROR'), 5) 
     FROM table 
     WHERE id = 721451 
     AND Status = 'false' 
     AND Response LIKE '%<status>Unknown</status>%' 
     AND date >= curdate() 
); 

Благодарим за помощь!

+1

@ReggieB Спасибо за форматирование моего вопроса! Это первый вопрос, который я опубликовал, и я до сих пор новичок в этом ... – acnc111

+0

Где этот suqbery = "ERROR" – Mihai

+0

@ darshan-patel заслуживает кредита тоже. – ReggieB

ответ