2012-05-01 2 views
0

Я пытаюсь обновить пользовательские мета для всех сообщений WordPress, где другой обычай мета поля равна 1.MySql поля обновления, основанные на других полях

Моя таблица выглядит таким образом

meta_id | post_id | meta_key | meta_value 
------------------------------------------------ 
0001  | 1234 | _p_free | 1 
0002  | 1234 | new_free | null 
0003  | 2345 | _p_free | 1 
0004  | 2345 | new_free | null 
0005  | 9876 | _p_free | 0 
0006  | 9876 | new_free | null

Итак, как вы можете увидеть, что я хотел бы сделать, это выполнить запрос, который находит все сообщения с meta_key = _p_free и meta_value = 1, а затем обновить new_free с тем же pOST_ID также равной 1.

Благодарности

+1

'обновление yourtable набора field1 = field2 + field3 где Field4 = somevalue'? –

ответ

2

Вы должны использовать multiple-table UPDATE syntax с автообъединение:

UPDATE tbl AS t1 JOIN tbl AS t2 USING (post_id) 
SET t1.meta_value = 1 
WHERE t2.meta_key = '_p_free' AND t2.meta_value = 1 
+0

Это похоже на билет, спасибо, я попробую. – OzTheGreat

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