在SQL中,当一列等于一个或另一个值时,如何获取计数?
我有一个列,值可以是x、y或z,我的语法有问题。如果某个值是x或y以及其他参数,我想在计数中加上一个。我相信我的“和或”陈述是给了我错误的数据 例如: 主题 x y z x 我希望计数是3在SQL中,当一列等于一个或另一个值时,如何获取计数?,sql,count,Sql,Count,我有一个列,值可以是x、y或z,我的语法有问题。如果某个值是x或y以及其他参数,我想在计数中加上一个。我相信我的“和或”陈述是给了我错误的数据 例如: 主题 x y z x 我希望计数是3 $query = "SELECT COUNT(*) as c FROM DATA WHERE Assign_To = ('data') AND Date_Entered >= ('3/21/201
$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')";
$query=“从数据中选择计数(*)作为c
其中,Assign_To=('data')
和
输入日期>=('3/21/2015')
和
输入日期用括号括起或
$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' )";
您可以在('x','y')中编写columnname,而不是columnname=('x')或columnname=('y')
我更新了我的答案,以反映Farhegs的评论,因为两个OR语句都针对同一个字段,IN子句是最好的选择。但是,当需要检查两个不同的字段时,您需要使用括号将OR语句分组
$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' )";