繁体   English   中英

如果使用php mysql找到值5次,如何计算表中的值并返回true

[英]how to count values from a table and return true, only if the value is found 5 times using php mysql

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

这是我的表

-------------- 
ID    value      
--------------- 
1       1           
2       0           
3       1
4       1
5       1
6       0   

我正在尝试在php中编写一个mysql查询,如果总值计数大于5,则只显示总值计数。即如果表中找到的记录超过5条,则只返回查询为真。

有人可以帮帮我吗? 我尝试了很多东西。

这是我迄今为止尝试过的代码

 $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),则在表中找到值= 1的6次。 所以查询应该返回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, if($results > 5) { return true}

谢谢

希望这个能对您有所帮助 :

您可以使用count_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

演示

如果表少于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';
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM