mysql - 如何防止 MySQL 数据库中出现重复的列行,同时保持顺序不变

标签 mysql sql

你能帮我吗?我在数据库中有一个表,其中有一列名为“recioient_id” 其行的值重复多次如何在保持顺序降序并显示最后一行的同时防止重复行 我已经尝试了很多却没有找到 我做了这个查询并且善于防止重复并且没有显示最后一行 查询为:

SELECT *
FROM `messages`
WHERE `sender_id` = 1
GROUP BY `recioient_id` DESC
HAVING COUNT(*) >= 1

这是一个示例表

https://drive.google.com/file/d/13fmMB_znYUiy-hvfMgai0a_znOIHjcfU/view?usp=sharing

希望翻译成功,希望能有所帮助

最佳答案

如果您希望每个 recioient_id 一行,请使用过滤。我会推荐一个相关子查询:

SELECT m.*
FROM messages m
WHERE m.sender_id = 1 AND
      m.messages_id = (SELECT MAX(m2.messages_id)
                       FROM messages m2
                       WHERE m2.sender_id = m.sender_id AND
                             m2.recioient_id = m.recioient_id
                      )
ORDER BY m.recioient_id;

关于mysql - 如何防止 MySQL 数据库中出现重复的列行,同时保持顺序不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53440139/

相关文章:

python - 为什么这个sql脚本不执行?

sql - FTS(全文搜索)sqlite如何实现FTS表?

sql - 如何根据SQL中前一行的值增加列的值

java - 返回多个结果集的查询

php - 具有嵌套集模型的 GROUP_CONCAT

mysql - Docker-compose 在 CircleCI 中复制 MySQL 配置时出现问题

PHP MySQL 负值(余额)问题

mysql - 获取每个 id 的最大值

mysql - 如何使用 SQL 查询删除父表和子表行?

mysql - 我应该如何更改我的 sql 语句才能到达此表?