【发布时间】:2012-09-15 03:56:33
【问题描述】:
我有这个问题
SELECT
COUNT(
CASE
WHEN restricted LIKE '%us%' THEN 2
ELSE 1
END) AS totalcount
FROM
reviews
WHERE
restricted LIKE '%us%'
这会计算出现在列中的诸如“我们”之类的值的总数(受限)。此列以这种“不寻常”的方式由多选复选框中的值填充:
*us*ca*uk* 等
这很有效。没问题。
现在,我需要计算这个值(我们)没有出现在哪里。 我试图做到这一点,一个“经典”。
SELECT
COUNT(
CASE
WHEN restricted NOT LIKE '%us%' THEN 2
ELSE 1
END
) AS totalcount
FROM
reviews
WHERE
restricted NOT LIKE '%us%'
我已经声明了 NOT LIKE 声明,但现在...问题...它还计算未填充“受限”列的行(某些列表不使用此列)。而且计数是错误的。
有人可以帮忙吗?
【问题讨论】:
-
不需要 CASE 语句。您的 WHERE 子句意味着 ELSE 永远不会被击中。
标签: mysql sql select count sql-like