gpt4 book ai didi

这些年写过的花式sql-第一句删除重复无效的记录

转载 作者:我是一只小鸟 更新时间:2023-08-01 22:31:29 26 4
gpt4 key购买 nike

这些年写过的花式sql - 第一句 删除重复无效的记录

写好复杂sql可以减少代码量,经过写这些年的后台统计,我学着像写代码一样的设计和尝试sql。现整理如下: 本来想一次性写完的,不过那写起来和看起来都太累了。还是分解一下吧。 如果有不对的或者可以优化的地方,欢迎指正.

第一句

需求:

表中有字段 用户名 username,状态 status(1,有效,-1无效)。因为以前的一些疏忽,导致部分username的记录超过1个而且有的状态是1(为1 的最多有一个),有些是-1。现在准备把 同时有1和-1的username记录整理一下,只保留状态为1的那条记录.

                  
                    //删除重复无效的username对应的记录
delete 
from `child_user` 
where 
    username in 
        (SELECT username from ( SELECT username,count(*) as num FROM `child_user` group by username having num >1) a)
    and status !=1


                  
                
解析:
  • 分析删除条件 :【条件一】status !=1 ,且 【条件二】该username对应的记录不止一条。
    对于条件二,可以分解:
    1. 查询 username 不止一条的记录 ( SELECT username,count(*) as num FROM child_user group by username having num >1)
    2. 把这个结果 起个表别名 a
    3. 提取其中的username列 即为 不止一条记录的username集合
  • 知识点 delete group in 中间结果集作表的转换 : (sql)表别名。如果这个 临时结果需要被 “from”,一定要 括起来并加上别名。如果不是被from,目前看来是不要加的。这里加了甚至会出错。

最后此篇关于这些年写过的花式sql-第一句删除重复无效的记录的文章就讲到这里了,如果你想了解更多关于这些年写过的花式sql-第一句删除重复无效的记录的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com