我有一个疑问。怎么办
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/