mysql - SQL:根据条件删除行
问题描述
我需要删除列的值,这可以通过 for 循环和 if 条件轻松实现。但是,我不知道如何在 SQL 中执行。我的表如下所示
dt _______ level ________ cohort_size ________ daily_users
2020 _______ D5 ________ 345. ________ 12
2020 _______ D3 ________ 32 ________ 32
2019 _______ D0 ________ 78. ________ 78
2019 _______ D4. ________ 67 ________ 56
2018 _______ D0 ________ 56 ________ 9
我要做的是删除级别为 D0 和群组大小 = 每日活跃用户的行。所以基本上我应该只删除第 3 行。其他一切都保持不变。您对如何进行此操作有任何建议吗?
谢谢你。
解决方案
您可以使用where
子句。一种方法直接遵循您的逻辑:
select t.*
from t
where not (level = 'D0' and cohort_size = daily_users);
注意:为此,它假定三列不是NULL
. 它可以很容易地调整来处理。
如果您确实想从表中删除该行,请使用delete
:
delete t from t
where level = 'D0' and cohort_size = daily_users;
推荐阅读
- regex - How do I match a Column that has a Value with a Column that has a range when ranges have multiple steps
- php - 如何将过滤器添加到结果集中?
- c++ - 使用 CMake 和 Boost 单元测试进行编译
- javascript - 如何找到具有数据属性和 ID 的元素?
- api - 您如何让 API 识别 DOCUSIGN 上的“模板 ID”。我正在放置模板,但它是空白的
- node.js - 如何将对象数组保存到猫鼬数据库中
- angularjs - AngularJS 添加 - 从 ng-repeat 列表中删除类
- linux - 如何从 ContainerA 调用/运行 ContainerB 中的 Shell 脚本?
- excel - VBA .SetText 和 .PutInClipboard 将两个符号放入剪贴板而不是所需数据
- vue.js - vuerouter 编辑链接,我是否存储状态?