我在registrations表上有10,000个用户,并希望从我的应用程序中将此查询限制为3500个用户。但是,当我调查日志时,有时它计数超过3500。我不明白为什么该查询返回的值超出限制:

select  count(*)
    from  registrations
    where  (selectedtime IS NULL
       AND  expirationtime < NOW()
           )
    LIMIT  3500;


我在数据库上手动尝试过,发现有时超过3500

最佳答案

您的查询仅返回1行,小于3500。

如果要限制要计数的行数,则需要将其放入子查询中。

SELECT COUNT(*)
FROM (
    SELECT 1
    FROM registrations
    WHERE selectedtime IS NULL AND expirationtime < NOW()
    LIMIT 3500) AS x

关于mysql - MariaDB LIMIT语句带来的不仅仅是限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56996085/

10-12 15:24