【发布时间】:2018-12-06 05:05:49
【问题描述】:
我正在使用 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";
}
谢谢
(编辑 - 使问题更清楚)
因此,如果我们查看下表(TABLE 1),则在表中找到了 6 次 value = 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,则 value = 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.ini 的查询之外使用 if 语句。 ie, if($results > 5) { return true}
谢谢
【问题讨论】:
-
这个不清楚,如果超过 5 行你想显示结果还是你想显示
value大于 5 的行? -
在表格中找到超过 5 个结果的地方。我的代码很混乱
-
我知道
value > 1 THEN value ELSE 0 END只计算 value = 1 而不是 0 的值。但是,如果我希望查询仅在找到 5 个或更多值时返回 true,我该怎么办 -
你想要什么?列值的总和?
-
为什么不使用 sum 而如果 sum>=5 则返回 true
标签: php mysql codeigniter case codeigniter-3