如何从表中计算值并返回true,前提是使用php mysql只找到5次该值

如何从表中计算值并返回true,前提是使用php mysql只找到5次该值,php,mysql,codeigniter,case,codeigniter-3,Php,Mysql,Codeigniter,Case,Codeigniter 3,我正在使用PHP和MySQL构建一个类似用户的系统 这是我的桌子 -------------- ID value --------------- 1 1 2 0 3 1 4 1 5 1 6 0 我试图用php编写一个mysql查询,如果总值计数大于5,则只显示总值计数。i、 e仅当在表中找到5条以上的记录时,才将查询返回为true 有人能帮我吗?我试过

我正在使用PHP和MySQL构建一个类似用户的系统

这是我的桌子

-------------- 
ID    value      
--------------- 
1       1           
2       0           
3       1
4       1
5       1
6       0   
我试图用php编写一个mysql查询,如果总值计数大于5,则只显示总值计数。i、 e仅当在表中找到5条以上的记录时,才将查询返回为true

有人能帮我吗?我试过很多东西

这是我的代码,我已经试过了

 $query = "  SELECT COUNT(value) AS value,
                    CASE
                    WHEN value > 0 THEN value ELSE 0 END
                    FROM users
            ";

 $query = $this->db->query($query);

 $query->result_array();

 if ($query->num_rows() > 0){

     echo "more than 5 records are found";

 } 
谢谢

(编辑-使问题更清楚)

因此,如果我们看下表(表1),在表中可以找到6次值=1。因此查询应该返回true。这是因为我试图计算所有值,其中value=1,而不是value=0。我只想返回查询,如果value=1被找到5次或更多次

TABLE 1 
-------------- 
ID    value      
-------------- 
1       1           
2       0           
3       1
4       1
5       1
6       0  
7       1
8       1
如果我们看一下下面的表2,在该表中只能找到2次value=1。因此,我们将查询返回为false,因为我们需要在表中找到value=1 5次以上才能返回true

TABLE 2 
-------------- 
ID    value      
-------------- 
1       1           
2       0           
3       1
4       0
5       0
6       0  
7       0
8       0
我希望在查询中实现这一点,而不是在使用php的查询之外使用if语句<代码>ie,如果($results>5){return true}


谢谢

希望这对您有所帮助:

您可以使用
count\u all
获取计数,然后获取用户记录

$count = $this->db->count_all('users');

if ($count > 5)
{
  $query = $this->db->get('users');
  $records = $query->result_array();
  print_r($records);
}

如果存在5条或5条以上的记录,则可以使用以下查询来获取数据

select *
from users u
where (
  select count(*)
  from users
) >= 5


下面是另一个if表,该表的行数少于5行

,如果要获取列值中的值之和,可以使用该表

    $data = $this->db->get('users')->result_array();

    foreach ($data as $row) {
        $num_value[] = $row['value'];
    }
    $num_value = array_sum($num_value);
    if($num_value > 5){
        echo 'value is more than 5';
    }
    else{
        echo 'value is equal or less than 5';
    }

这还不清楚,如果有5行以上的结果,是要显示结果,还是要显示
value
大于5的行?如果表中有5个以上的结果。我的代码很混乱我知道
value>1然后value ELSE 0 END
只计算value=1而不是0的值。但是,如果我希望查询仅在找到5个或更多值时返回true,那么我该怎么办呢?列值中的值之和?为什么不改用sum?如果sum>=5,则返回true如果找到5个值怎么办?@JustBaron这里很容易理解,使用
=
啊,OP问题与OPs注释不同。道歉。