如何计算表中的值并返回true,仅当使用php mysql找到该值5次时
Posted
技术标签:
【中文标题】如何计算表中的值并返回true,仅当使用php mysql找到该值5次时【英文标题】:how to count values from a table and return true, only if the value is found 5 times using php mysql 【发布时间】: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
【参考方案1】:
希望对您有所帮助:
您可以使用count_all
获取计数,然后获取用户记录
$count = $this->db->count_all('users');
if ($count > 5)
$query = $this->db->get('users');
$records = $query->result_array();
print_r($records);
【讨论】:
如果找到 5 个值怎么办? @JustBaron 在那里很容易理解,使用>=
啊,OP 问题与 OPs cmets 不同。道歉。【参考方案2】:
如果存在 5 条或多于 5 条记录,您可以使用以下查询获取数据
select *
from users u
where (
select count(*)
from users
) >= 5
Demo
这里是另一个demo 如果表少于 5 行
【讨论】:
【参考方案3】:如果你想得到列值中的值的总和,你可以使用这个。
$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';
【讨论】:
以上是关于如何计算表中的值并返回true,仅当使用php mysql找到该值5次时的主要内容,如果未能解决你的问题,请参考以下文章