我希望我能正确解释一下。这是:
我有一个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。
谢谢
答案 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, ...)