Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中,当一列等于一个或另一个值时,如何获取计数?_Sql_Count - Fatal编程技术网

在SQL中,当一列等于一个或另一个值时,如何获取计数?

在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

我有一个列,值可以是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/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' )";