我有这样的表:
Order | UserID | Date | Channel |
------------------------------------------
1 | 1 | 2015/01/01 | Direct |
2 | 1 | 2015/01/02 | Natural |
3 | 1 | 2015/01/03 | PPC |
4 | 1 | 2015/01/04 | Direct |
1 | 2 | 2015/01/01 | Natural |
2 | 2 | 2015/01/02 | Natural |
1 | 3 | 2015/01/01 | Direct |
2 | 3 | 2015/01/02 | Natural |
3 | 3 | 2015/01/03 | PPC |
1 | 4 | 2015/01/01 | Natural |
2 | 4 | 2015/01/02 | PPC |
3 | 4 | 2015/01/03 | Direct |
4 | 4 | 2015/01/04 | Natural |
我想删除 Order = 1 不是“自然”的完整用户 ID。 换句话说,我想删除未通过“自然” channel 开始其网站之旅的用户。
这是我希望看到的表格:
Order | UserID | Date | Channel |
------------------------------------------
1 | 2 | 2015/01/01 | Natural |
2 | 2 | 2015/01/02 | Natural |
1 | 4 | 2015/01/01 | Natural |
2 | 4 | 2015/01/02 | PPC |
3 | 4 | 2015/01/03 | Direct |
4 | 4 | 2015/01/04 | Natural |
我尝试使用 CASE WHEN 语句但结果很差:
SELECT
CASE
WHEN Order = 1
WHEN Channel = 'Natural'
END
FROM tablename
最佳答案
您需要使用Where
子句从表中过滤记录而不是case
语句
SELECT *
FROM tablename
WHERE Order = 1
AND Channel <> 'Natural'
关于MySQL:Case When 替代/正确语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561564/