簡體   English   中英

為什么我的 UPDATE 查詢會更新所有行?

[英]Why is my UPDATE query updating all rows?

我試圖通過添加 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

db<>小提琴演示

瑪麗亞數據庫 10.3:

UPDATE Dressing set dressingCode='111' 
WHERE dressingID=(SELECT MAX(dressingID) AS d FROM Dressing);

db<>小提琴演示

相關:您不能在 FROM 子句中指定要更新的目標表


原始查詢對單行有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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM