我试图通过添加WHERE子句并选择MAX'dressingID'作为我的主键来更新最近添加到表中的行。
该函数正在运行,但是它返回的是每一行,而不仅仅是ID最大的行。
以下是查询:
UPDATE Dressing set dressingCode='111' WHERE dressingID=(SELECT MAX(dressingID))
表名称=调味料
主键= dressingID
我正在尝试从QR码中获取一个数字并传递至表格中的最新条目,但是由于某种原因它正在更新每一行,我们将不胜感激。干杯!
答案 0 :(得分:2)
您需要参考表:
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