我有一个问题。我的查询如下
"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/