繁体   English   中英

只计算mysql表中的不同值?

[英]only count distinct values in mysql table?

我有一个表保存用户消息:

id | msg_id | recipient | sender
1       1         4         8
2       1         4         8
3       1         4         8
4       6         4         8

我正在尝试计算msg_id的行,但是我想使用一个不同的函数,它只计算每个数字一次。 因此,如果数字“1”出现4次,则计数应仅计数“1”一次并忽略其他行。

有人可以告诉我如何实现这一目标。

到目前为止,我有这个计算msg_id的所有行,我怎么能改变它计数不同,谢谢。

function check_new_messages() {
            global $connection;
            global $_SESSION;
            $query = "SELECT COUNT(id) FROM ptb_messages WHERE to_user_id=".$_SESSION['user_id']." AND deleted_to='0' AND read_message='0' AND from_user_id != '0'";
            $check_new_messages_set = mysql_query($query, $connection);
            confirm_query($check_new_messages_set);
            return $check_new_messages_set;     
        }

输出:

<?php
$check_new_messages_set = check_new_messages();
while ($new = mysql_fetch_array($check_new_messages_set)) { 
echo "". $new['COUNT(id)'] .""; 
?><? } ?>
SELECT COUNT (DISTINCT msg_id)  FROM ptb_messages GROUP BY msg_id 
SELECT COUNT(msg_id) FROM ptb_messages GROUP BY msg_id 

将您的SQL语句更改为:

SELECT COUNT(DISTINCT msg_id) FROM ptb_messages WHERE to_user_id=

暂无
暂无

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

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