2015-08-15 54 views
0

响应列中的数据为= blahblahblahTYPE=ERRORblahblah。然后我运行下面的查询来定位'ERROR'字符串。MYSQL从select子查询中更新

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

我基本上想更新ERRORSUCCESS而不编辑其余的数据。

下面的查询会工作吗?有一个更好的方法吗?

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 =“错误” – Mihai

+0

@ darshan-patel也值得赞扬。 – ReggieB

回答