mysql - 如果多行匹配,则在 mysql 中排序

标签 mysql sorting sql-order-by

我有一个疑问。怎么办

ORDER BY time_stamp ASC

如果 3 个不同的行具有相同的 time_stamp 值,将会起作用吗?

好的,我将粘贴整个查询

SELECT mail FROM table2 INNER JOIN table1 ON table2.wid = table1.id WHERE table1.time_stamp >= DATE_SUB(NOW(),INTERVAL 10 MINUTE) AND table1.status<>200 GROUP BY table1.Id ORDER BY table1.time_stamp ASC LIMIT 2

请大家帮我解答一下。

最佳答案

如果三行具有相同的时间戳值,那么它们将在 order by 之后显示为三行。以任意顺序。如果您想要一种稳定排序(即始终返回相同值的排序),请在 order by 子句中包含 id

您的分组依据应确保您在来自查询的两行中获得不同的ID。

编辑:

如果您需要匹配 1 或两个时间戳的所有记录,请执行以下操作:

select table1.email
from table1 join
     (SELECT time_stamp
      FROM table2 INNER JOIN
           table1
           ON table2.wid = table1.id
      WHERE table1.time_stamp >= DATE_SUB(NOW(),INTERVAL 10 MINUTE) AND table1.status<>200
      ORDER BY table1.time_stamp ASC
      LIMIT 2
     ) limits
     on table1.time_stamp = limits.time_stamp
GROUP BY table1.Id;

这将获取与时间戳匹配的所有 table1 记录。您可能需要重复一些 where 条件。

关于mysql - 如果多行匹配,则在 mysql 中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18718002/

相关文章:

javascript - 根据预定义的顺序对字符串列表进行排序

php - SQL : How to Count occurrences in TableA, 与表连接,然后按出现次数排序?

mysql - SQL 中的排序依据/限制执行

java - 从java更新mySQL数据库上的int

c++ - 如何根据 C++ 中的另一个 map 对 map 进行排序?

php - 如何获取用户交互的日期之间的日期

mysql - 从 mysql 排序/过滤特定图像

mysql - 为什么按主索引排序会使此查询变慢?

mysql - 通缉 : SQL query to count records meeting certain criteria & return info about highest count

mysql - 子查询返回多于 1 行(Sql 函数)