我有这个问题
SELECT
COUNT(
CASE
WHEN restricted LIKE '%us%' THEN 2
ELSE 1
END) AS totalcount
FROM
reviews
WHERE
restricted LIKE '%us%'
这将统计列(受限)中出现的“us”等值的总数。此列由muultiselect复选框中的值以这种“异常”方式填充:
*美国*加拿大*英国*等。
这很管用。没问题。
现在,我需要计算这个值(us)不出现的地方。
我试着这么做,一个“经典”。
SELECT
COUNT(
CASE
WHEN restricted NOT LIKE '%us%' THEN 2
ELSE 1
END
) AS totalcount
FROM
reviews
WHERE
restricted NOT LIKE '%us%'
我已经宣布国家不喜欢但是现在。。。问题。。。它还计算未填充“restricted”列的行(有些列表不使用此列)。计数是错误的。
有人能帮忙吗?
最佳答案
“restricted”列上的空值或空值将传递“restricted NOT LIKE“%us%”
“声明。尝试更改为:
SELECT
COUNT(
CASE
WHEN restricted NOT LIKE '%us%' THEN 2
ELSE 1
END
) AS totalcount
FROM
reviews
WHERE
restricted NOT LIKE '%us%'
AND restricted != ''
AND restricted IS NOT NULL