2017-10-28 105 views
0

如何更新DB中的discount_price價格 我需要根據自己的情況爲現有價值增加價值 示例:任何產品的價格從10到30 我必須向其中添加1.5。根據條件更新聲明

產品,15應該是16.5例如

我寫了這個查詢

UPDATE products 
    SET discount_price = discount_price + 1.5 
    WHERE discount_price >= 10 AND discount_price <= 30; 

但我發現這個錯誤>>

SQL錯誤:

ERROR: syntax error at or near "SET" 
LINE 1: SELECT COUNT(*) AS total FROM (UPDATE products SET discount_... 
                ^
In statement: 
SELECT COUNT(*) AS total FROM (UPDATE products SET discount_price = discount_price + 1.5 
WHERE discount_price >= 10 AND discount_price <=30) AS sub 

enter image description here

+2

您寫的查詢和錯誤消息中的查詢是不同的。 –

+0

沒有。當我點擊執行查詢,我的截圖 –

回答

0

我猜你正在使用Postgres,並且想要統計更新所影響的行數。

WITH p as (
     UPDATE products 
      SET discount_price = discount_price + 1.5 
      WHERE discount_price >= 10 AND discount_price <= 30 
      RETURNING * 
    ) 
SELECT COUNT(*) 
FROM p; 

有MySQL中沒有對應的語法:如果是這樣,你可以使用一個可更新的CTE。

+0

得到這個錯誤,我得到這個 錯誤:與包含修改數據的語句必須是在頂層 線1條:SELECT COUNT(*)AS總FROM(WITH數p作爲( ^ 在語句: SELECT COUNT(*)AS總FROM(具p爲( UPDATE產品 SET discount_price = discount_price + 1.5 WHERE discount_price> = 10且discount_price <= 30 RETURNING * ) SELECT COUNT(*) FROM p)AS sub –

+0

@MohammadKanaan ...。您有其他代碼y你沒有顯示。我不知道'select count(*)'來自哪裏,但它在某處。 –

+0

您可以通過團隊查看器訪問我的筆記本電腦以查看問題嗎? –