多个数据 NAME字段相同 userid相同 CONTACTPHONE相同 删除ISSMS是0的数据 msyql
时间: 2024-09-21 09:09:01 浏览: 49
在MySQL中,如果你想要删除那些NAME、userid和CONTACTPHONE都相同,同时ISSMS字段等于0的数据,你可以使用以下的DELETE语句结合GROUP BY和HAVING子句来实现:
```sql
DELETE t1
FROM your_table t1
JOIN (
SELECT NAME,(userid), CONTACTPHONE, MAX(ISSMS) as max_ISSMS
FROM your_table
WHERE ISSMS = 0
GROUP BY NAME, userid, CONTACTPHONE
) t2 ON t1.NAME = t2.NAME AND t1.userid = t2.userid AND t1.CONTACTPHONE = t2.CONTACTPHONE
WHERE t1.ISSMS < t2.max_ISSMS;
```
这里,内部的子查询首先找出所有ISSMS为0,并且NAME、userid和CONTACTPHONE相同的行并保存最大值(假设如果ISSMS不为0,则max值为NULL)。外部的DELETE语句会删除原始表(t1)中ISSMS小于这个最大值的行,因为这意味着它们的ISSMS状态不是最新的(即不是0)。
阅读全文