当一列等于 SQL 中的一个或另一个值时,如何获取计数?
How do I grab the count when a column equals one or the other value in SQL?
我有一列,值可以是 x y 或 z,我的语法有问题。如果某个值是 x 或 y 以及其他参数,我想在计数中加一。我相信我的 "and or" 语句给我错误的数据。
示例:
主题
x
y
z
x
我希望计数为 3
$query = "SELECT COUNT(*) as c FROM DATA
WHERE Assign_To = ('data')
AND
Date_Entered >= ('3/21/2015')
AND
Date_Entered <= ('3/22/2015')
AND
columnname = ('x')
OR
columnname = ('y')";
将您的 OR 括在括号中
$query = "SELECT COUNT(*) as c FROM DATA
WHERE Assign_To = ('data')
AND Date_Entered >= ('3/21/2015')
AND Date_Entered <= ('3/22/2015')
AND ( columnname = 'x' OR columnname = 'y' )";
其他一些建议:
您不必将所有内容都放在括号中,也不必为输入的日期使用 between 语句。之间是包容性的。此外,由于两个 OR 选项都针对同一字段,因此您可以使用 IN 代替
$query = "SELECT COUNT(*) as c FROM DATA
WHERE Assign_To = 'data'
AND Date_Entered BETWEEN '3/21/2015' AND '3/22/2015'
AND columnname in ( 'x', 'y' )";
我有一列,值可以是 x y 或 z,我的语法有问题。如果某个值是 x 或 y 以及其他参数,我想在计数中加一。我相信我的 "and or" 语句给我错误的数据。
示例:
主题
x
y
z
x
我希望计数为 3
$query = "SELECT COUNT(*) as c FROM DATA
WHERE Assign_To = ('data')
AND
Date_Entered >= ('3/21/2015')
AND
Date_Entered <= ('3/22/2015')
AND
columnname = ('x')
OR
columnname = ('y')";
将您的 OR 括在括号中
$query = "SELECT COUNT(*) as c FROM DATA
WHERE Assign_To = ('data')
AND Date_Entered >= ('3/21/2015')
AND Date_Entered <= ('3/22/2015')
AND ( columnname = 'x' OR columnname = 'y' )";
其他一些建议: 您不必将所有内容都放在括号中,也不必为输入的日期使用 between 语句。之间是包容性的。此外,由于两个 OR 选项都针对同一字段,因此您可以使用 IN 代替
$query = "SELECT COUNT(*) as c FROM DATA
WHERE Assign_To = 'data'
AND Date_Entered BETWEEN '3/21/2015' AND '3/22/2015'
AND columnname in ( 'x', 'y' )";