php - 如何跳过重复项并排序

标签 php mysql

如何跳过数据库中的重复项并对最新日期进行排序?并显示 foreach 唯一 id 执行此操作..

我正在制作一个简单的聊天系统,我想做的是显示每个已发送消息的用户并跳过重复的 user_ids。

此外,我还尝试跳过用户 ID #1,因为那是管理员。

<?php 

    // Read every user in the database
    $conn = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME . ';charset=utf8', DB_USER, DB_PASS);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sth = $conn->prepare("SELECT DISTINCT user_id FROM live_chat ORDER BY message_date ASC;");
    $sth->execute();
?>
<table cellspacing="0" cellpadding="0" border="0" width="330" class="left">
    <tr>
        <td width="330" valign="top">
            <div class="live_chat_users">
                <?php
                    foreach($sth as $row){
                        if($row['user_id'] == 1){

                        }else{
                            echo $row['user_id']; 
                        }
                    }
                ?>
            </div>
        </td>
    </tr>
</table>

SQLfiddle:http://sqlfiddle.com/#!2/aadcaf

最佳答案

尝试如下:

SELECT user_id 
FROM live_chat  
WHERE user_id != 1
GROUP BY user_id
ORDER BY message_date ASC

关于php - 如何跳过重复项并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28658713/

相关文章:

php - 对一个准备好的语句对象进行多个查询

mysql - 实时 IAX 客户端问题 Asterisk

mysql - 无法在 MySql 的触发器中引用具有计算虚拟列的表

MySQL 数据透视表 - 如何将动态列转换为行?

php - 在 Woocommerce 中隐藏已添加到购物车消息

PHP DateTime->diff() 不能正常工作

php - 在 Laravel 中同步一对多关系

php - doctrine2 和 group_concat

php - 从 ORDER BY 查询的结果中选择数据

php - 导出 csv 之前设置数据库列别名