2017-10-28 103 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

您可以通过团队查看器访问我的笔记本电脑以查看问题吗? –