【发布时间】:2013-09-30 21:40:09
【问题描述】:
我正在输入以下查询,但收到表不可更新的错误消息?
SET @rownumber = 0;
UPDATE (
SELECT _atc_codes.se, diagnoses.*
FROM diagnoses
JOIN _atc_codes
ON (_atc_codes.id = diagnoses.atc_code)
ORDER BY _atc_codes.se, diagnoses.year, diagnoses.county, diagnoses.age_group, diagnoses.gender) AS b
SET b.base_order_index = (@rownumber:=@rownumber+1)
我想要实现的是通过添加一个序列列来加快我的查询速度,我可以对我的结果进行排序,而不是在多个列上进行排序。它基于一个涉及 5 列的 ORDER BY 子句,其中之一来自 JOINed 表。
【问题讨论】:
-
您想更新一个临时子查询。那是行不通的。
-
@juergend 我尝试将
UPDATE与ORDER BY一起使用,但随后出现错误“不正确使用带有ORDER BY 的UPDATE”,所以我看到有人建议使用此解决方案相反,但它显然也不起作用。 -
您是否尝试将序列列添加到临时查询或表中?您显然正试图在查询中这样做
-
@silkfire:您可以在问题中添加示例数据和预期输出吗?我无法回答您的问题。
-
@juergend 这是一个自动增量,基于使用我的
ORDER BY子句的结果顺序 :)
标签: mysql join sql-update