繁体   English   中英

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

[英]sorting in mysql if multiple rows matches

我有个疑问。 怎么样

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

您的group by应确保您在查询的两行中获得不同的ID。

编辑:

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

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条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM