Да, это возможно, но это сложно:
UPDATE `messages`
SET `from_delete` = IF(`from_user_id` = '6',NOW(),`from_delete`)
, `to_delete` = IF(`to_user_id` = '6',NOW(),`to_delete` )
WHERE (`thread_hash` = 'abc' AND `from_user_id` = '6')
OR (`thread_hash` = 'abc' AND `to_user_id` = '6')
«Трюк» является использование условной в задании. Если строку не следует обновлять, то назначьте текущее значение столбца столбцу для операции «без изменений».
Для полноты, вы можете добавить условие на thread_hash к условному. хотя это ничего не меняет с запросом:
UPDATE `messages`
SET `from_delete` = IF(`thread_hash` = 'abc' AND `from_user_id` = '6'
,NOW(),`from_delete`)
, `to_delete` = IF(`thread_hash` = 'abc' AND `to_user_id` = '6'
,NOW(),`to_delete` )
WHERE (`thread_hash` = 'abc' AND `from_user_id` = '6')
OR (`thread_hash` = 'abc' AND `to_user_id` = '6')
А что это за '' '' '' ' Любой код, который вы можете поделиться, чтобы рассказать нам о 'it'? –
Начните с описания условий запроса на простом английском языке, и вы найдете это довольно сложно .... – Pleun
Кажется, что два запроса - это подходящее решение для этого \ – TGH