【问题标题】:MySQL SELECT while UPDATEMySQL SELECT 同时更新
【发布时间】:2011-10-15 11:17:59
【问题描述】:

我写了一个查询,我确定它是正确的形式。 但我得到一个错误。 :) 我可以做其他查询吗?

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;

谢谢。

【问题讨论】:

  • @devel: mysql 不支持从您同时更新/删除的表中进行选择。

标签: mysql select while-loop


【解决方案1】:

你不能这样做。您需要交叉连接表和子查询:

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;

【讨论】:

  • 它很好! :) 谢谢你的快速回答。
  • @szatti1489:如果不错,请点击Check/Correct将其标记为答案。
猜你喜欢
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多