找出mysql表和查询的差异

时间:2013-01-28 18:51:05

标签: mysql

我希望我能正确解释一下。这是:

我有一个id列表,我需要在mysql表中检查订阅状态,以找出这些id中有多少是最新的。我有id和subscriptionEnd。我的查询不起作用,我没有足够的知识知道如何做到这一点。请查看并与我分享我能做些什么。我需要匹配成千上万的id。

SELECT c.id, c.subscriptionEnd
FROM subscriptions c
WHERE c.subscriptionEnd > '2013-01-27`
AND c.id = 12345
AND c.id = 12939
....

这个列表一直在继续,我发现这不起作用。但问题是我不知道如何让这个工作。非常感谢任何解决方案,我可以检查并获得订阅结果大于给定日期的id。

谢谢

1 个答案:

答案 0 :(得分:1)

您最好的选择是,因为要检查1000个值,就是将要检查的所有ID插入临时表中 - 让我们使用单个列{{1}调用表checkIds }。

然后你就可以做到:

id

最后在完成后放下临时表。


其他解决方案包括:

  • 一个庞大的笨拙SELECT c.id, c.subscriptionEnd FROM subscriptions c INNER JOIN checkIds ON c.id = checkIds.id WHERE c.subscriptionEnd > '2013-01-27' 条款可能会成为表演的噩梦:

    IN
  • 在ID列表中查找模式:

    SELECT c.id, c.subscriptionEnd
    FROM subscriptions c
    WHERE c.subscriptionEnd > '2013-01-27'
    AND c.id IN (12345, 12939, ...)