如何解决检查数据库中所有选定的值是否相同
我有这段代码试图检查所选行中的所有值是否相同,并且只是不起作用
$name = $row['name'];
$sql = "SELECT status FROM testing WHERE name='$name'";
$result = mysqli_query($conn,$sql);
$datas = array();
if(mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$datas[] = $row;
}
}
if (count(array_unique($datas)) === 1 && end($datas) === 'No') {
echo 'all the same';
}
else {
echo 'not all the same';
}
将值插入数组 $ datas 后,仍然尝试检查值 No 在数据库中所有选定行中是否都相同,但是会不断抛出错误
注意:要转换字符串为
编辑:我添加了这个 $ datas [] = $ row ['status']; 并且有效
解决方法
为什么不简单地在数据库中这样做呢?
SELECT COUNT(DISTINCT status) < 2 as all_the_same
FROM testing
WHERE name = ?
此查询为您提供标量结果集(一行和一列,称为all_the_same
):如果所有值都相同,则您将得到1
,否则得到0
。
如果给定名称根本没有任何行,那么您也会得到0
。我们可以通过返回null
来区分这种情况:
SELECT CASE COUNT(DISTINCT status)
WHEN 0 THEN NULL
WHEN 1 THEN 1
ELSE 0
END as all_the_same
FROM testing
WHERE name = ?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。