我要更新列的MIN值,但似乎无法使我的语法工作。 我一直收到错误 #1093 - 您无法在FROM子句中为更新指定目标表'turcare_turutstyr'
我的查询是
UPDATE tableName
SET solgt = true
WHERE produktid = (SELECT min(produktid) FROM tableName
WHERE artnr = '1234'
AND solgt = false)
我在哪里做错了?
答案 0 :(得分:1)
MySQL不允许您在update
或delete
查询中直接使用同一个表两次。嗯,确实如此。一种方法使用join
:
UPDATE tableName t JOIN
(SELECT min(produktid) as produktid
FROM tableName
WHERE artnr = '1234' AND solgt = false
) tt
ON t.produktid = tt.produktid
SET solgt = true;
答案 1 :(得分:1)
可能是你的where子句返回超过1行
UPDATE tableName
SET solgt = true
WHERE produktid in (SELECT min(produktid) FROM tableName
WHERE artnr = '1234'
AND solgt = false)
答案 2 :(得分:0)
感谢juergen d我解决了它
UPDATE turcare_turutstyr
SET solgt = true
WHERE produktid IN ( select * from ( SELECT min(produktid)
FROM turcare_turutstyr
WHERE artnr = '1234'
AND solgt = false )
TMP )