我试图通过添加 WHERE 子句并选择 MAX 'dressingID' (我的主键)来更新最近添加到表中的行。
该函数正在工作,但它返回每一行,而不仅仅是具有最大 ID 的行。
这是查询:
UPDATE Dressing set dressingCode='111' WHERE dressingID=(SELECT MAX(dressingID))
表名=调料
主键=dressingID
我试图从二维码中获取一个数字并传递到表中的最新条目,但是由于某种原因它正在更新每一行,任何帮助将不胜感激。干杯!
最佳答案
您需要引用表格:
UPDATE Dressing set dressingCode='111'
WHERE dressingID=(SELECT d FROM ((SELECT MAX(dressingID) AS d FROM Dressing)) s);
-- forced materialization
MariaDB 10.3:
UPDATE Dressing set dressingCode='111'
WHERE dressingID=(SELECT MAX(dressingID) AS d FROM Dressing);
相关:You can't specify target table for update in FROM clause
原始查询具有单行的 A=MAX(A)
条件:
UPDATE Dressing set dressingCode='111'
WHERE dressingID=(SELECT MAX(Dressing.dressingID))
<=>
UPDATE Dressing set dressingCode='111'
WHERE dressingID=Dressing.dressingID
-- always true for non-nullable dressingID
关于mysql - 为什么我的 UPDATE 查询会更新所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56974009/