繁体   English   中英

在带有 WHERE 子句的 UPDATE 中使用 HAVING

[英]Using HAVING in UPDATE with WHERE CLAUSE

我正在尝试通过将列 VAT 设置为 2 来更新表,其中列图像中有重复值

SET 
    VAT = 2
WHERE id >0  
 HAVING count(image) > 1

你可以这样做:

UPDATE applicantinfo
SET VAT = 2
WHERE image IN (
    SELECT image
    FROM (SELECT * FROM applicantinfo)
    WHERE id > 0
    GROUP BY image
    HAVING COUNT(*) > 1
)

WHERE子句中的SELECT提供id大于零的行的重复image

你可以使用这个。

对于 SQL Server

update t set t.VAT = 2 from applicantinfo as t inner join
(select Image from applicantinfo group by image having count(*)>1) as b 
on t.image = b.image

从您的评论到之前的答案,我假设您使用的是 MySql。
在 MySql 中,您需要将表加入到返回重复图像的查询中:

update tablename t inner join (
  select image   
  from tablename
  where id > 0
  group by image
  having count(*) > 1
) i on i.image = t.image
set vat = 2;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM