mysql - 存在多个匹配行时的排序依据和限制

标签 mysql sorting sql-order-by limit

我有一个问题。我的查询如下

"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"

我想你们大多数人都明白我使用这个查询的目的。我一次只需要获取 2 个项目来发送电子邮件(但是当发生下面提到的问题时,查询将不会向一个用户发送邮件) 。

我的问题是,当出现 3 行具有相同 time_stamp 值时,它会打印从最后开始的前两行,但它永远不会获取第三行。我不想错过电子邮件通知中的任何用户。 如何解决这个问题?

最佳答案

您在查询结果中提到LIMIT为2。删除它以获取所有结果或将其更改为3。

我更改了 SELECT 以添加更多列,以便在运行时轻松检查结果。

SELECT table1.Id, table1.time_stamp, 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 3

关于mysql - 存在多个匹配行时的排序依据和限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18756044/

相关文章:

mysql - SQL按最接近时间合并2个表

mysql - 为什么这个查询不使用 ORDER BY 索引?

PHP MySQL JQuery 表单无法在客户端验证

mysql - MySQL 有没有办法从 information_schema 执行结果集

ruby - Ruby 中已排序元素的原始索引

arrays - 包含 n-2 个整数 1 到 n 的数组,O(n) 算法如何用 O(1) 额外空间查找缺失的 2 个数字?

algorithm - 编写一个程序,从 10 亿个数字的数组中找出 100 个最大的数字

sql - CASE 子句上的 ORDER BY 可以更快吗?

php - SQL - ORDER 表并选择第 25 行之后的所有内容

php - SQL 调用 - 这是正确的吗?