2011-07-28 2 views
0

Я написал запрос, и я уверен, что это была правильная форма. Но я получаю сообщение об ошибке. :) Могу ли я выполнить этот запрос еще?MySQL SELECT while UPDATE

UPDATE pages SET 
    p_name = 'Activites', 
    p_active = 1, 
    p_parent = 'sport', 
    p_parent_id=(
    SELECT p_id FROM pages WHERE p_link='sport' LIMIT 1 
    ), 
    p_link = 'activites' 
    WHERE p_id = 9; 

спасибо.

+0

какая ошибка вы получаете? – technology

+0

@devel: mysql не поддерживает выбор из таблицы, которую вы обновляете/удаляете одновременно. –

ответ

3

Вы не можете этого сделать. Вам необходимо пересечь таблицу и подзапрос:

UPDATE 
    pages AS p 
CROSS JOIN (
    SELECT p_id FROM pages WHERE p_link='sport' LIMIT 1 
) AS sq 
SET 
    p.p_name = 'Activites', 
    p.p_active = 1, 
    p.p_parent = 'sport', 
    p.p.parent_id= sq.p_id 
    p.p_link = 'activites' 
WHERE p.p_id = 9; 
+0

Его приятно! :) Спасибо, ваш быстрый ответ. – szatti1489

+1

@ szatti1489: Если это приятно, отметьте его как ответ, щелкнув «Проверить/исправить». –