mysql消息数据库查询拉取未读消息数(带查询)

iqxoj9l9  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(561)

我有一个数据库的消息,我目前能够拉一个单独的用户已发送的消息数量和用户名与 DISTINCT COUNT(*) 查询,但我无法提取具有 notread 列。
我的问题是从下面的查询谁能看到一个快速修复显示未读邮件的数量。我的数据库有一个 READ 在消息创建时输入yes或no的列。
下面的查询提取每个用户的用户名和消息量,并在旁边显示用户名和消息量。。
不过,我希望用未读邮件的数量替换邮件的数量。
这是密码

$db = new PDO("mysql:host=localhost;dbname=messages", 'root', ''); // 1. set database with this instead of conect - or change conect to this

$query="SELECT DISTINCT messageaccountname,count(*) FROM `messagedatabase` WHERE `listID`='$listID' GROUP BY messageaccountname  ";

$stat=$db->prepare($query);

$stat->execute();       

while($row = $stat->fetch()){

    $messagenumber = $row['count(*)'];
     $messageaccountname=$row['messageaccountname'];

        if ($messageaccountname != $useraccountname){

echo"<div id='namecon' class='ubnames' onclick='selectmessage(\"{$messageaccountname}\")'>{$messageaccountname} ({$messagenumber}) </div>"; 
                            }
   }

我想我得换个房间

messageaccountname, COUNT(*) 
WHERE 
    listID = $listID 
GROUP BY 
    messageaccountname

但我不确定如何显示结果的数量。
如果有人能看到我需要做什么,请让我知道,因为我已经寻找了一整天的答案,但还没有找到它。
谢谢大家。
列兹

gt0wga4j

gt0wga4j1#

我接受您的读取列类型为varchar或enum,值为yes和no。因此,如果您像下面这样更改查询,您可以获得未读消息计数

SELECT DISTINCT messageaccountname,count(*), sum(if(read = "NO", 1, 0)) unread_count FROM `messagedatabase` WHERE `listID`='$listID' GROUP BY messageaccountname

希望对你有帮助

相关问题