我正在使用php和mysql构建一个类似用户的系统。
这是我的table
--------------
ID value
---------------
1 1
2 0
3 1
4 1
5 1
6 0
我试图用php编写一个mysql查询,如果total value count大于5,它只显示total value count。i、 只有在表中找到5条以上的记录时,e才会将查询返回为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),值=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,值=1在该表中只出现了2次。所以我们将查询返回为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}
谢谢
3条答案
按热度按时间hgc7kmma1#
如果存在5条或5条以上的记录,可以使用以下查询来获取数据
演示
如果表的行数少于5行,下面是另一个演示
1cklez4t2#
希望这能帮助您:
你可以用
count_all
获取计数,然后获取用户记录6rqinv9w3#
如果您想得到列值中的值的总和,可以使用这个。