SQL:如何在忽略重复字段值的同时从表中选择行?

标签 sql mysql

如何在忽略重复字段值的情况下从表中选择行?

这是一个例子:

id          user_id          message

1           Adam             "Adam is here."
2           Peter            "Hi there this is Peter."
3           Peter            "I am getting sick."
4           Josh             "Oh, snap. I'm on a boat!"
5           Tom              "This show is great."
6           Laura            "Textmate rocks."

我想要实现的是从我的数据库中选择最近活跃的用户。假设我想选择 5 个最近活跃的用户。问题是,下面的脚本选择了 Peter 两次。

mysql_query("SELECT * FROM messages ORDER BY id DESC LIMIT 5 ");

我想要的是当它再次到达彼得时跳过该行,并选择下一个结果,在我们的例子中是亚当。所以我不想再次向我的访问者显示最近活跃的用户是 Laura、Tom、Josh、Peter 和 Peter。这没有任何意义,相反,我想以这种方式向他们展示:劳拉、汤姆、乔希、彼得、(跳过彼得)和亚当。

有没有我可以用来解决这个问题的 SQL 命令?

最佳答案

是的。 “不同”。

 SELECT DISTINCT(user_id) FROM messages ORDER BY id DESC LIMIT 5

关于SQL:如何在忽略重复字段值的同时从表中选择行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4682621/

相关文章:

sql - 在 SQL 搜索 (LIKE) 语句中首先给予列优先级

mysql - 创建触发器时mysql出错

sql - 如何查询一个数据库,如果没有返回结果再查询另一个数据库?

SQL - 选择下一个日期查询

php - 反向外键 Doctrine

mysql - 如何使用JSP从数据库中获取元组

mysql - 显示来自不同连接的相同 SQL 属性

php - 此 php 登录代码始终不返回任何内容

sql - 无法删除 PostgreSQL 角色。错误 : `cannot be dropped because some objects depend on it`

java - 在 MySQL 数据库中插入行之前从字符串中删除二进制代码