gpt4 book ai didi

mysql - 查找mysql表和查询的差异

转载 作者:行者123 更新时间:2023-11-29 00:35:23 25 4
gpt4 key购买 nike

我希望我能正确解释这一点。在这里:

我有一个 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
....

这个列表一直在继续,我发现这是行不通的。但问题是我不知道如何让它工作。非常感谢任何关于如何检查和获取 subscriptionEnd 大于给定日期的 ID 的结果的解决方案。

谢谢

最佳答案

你最好的选择是,因为你有 1000 个值要检查,所以将你想要检查的所有 ID 插入一个临时表 - 让我们用一个列调用表 checkIds 编号

然后你可以简单地做:

SELECT c.id, c.subscriptionEnd
FROM subscriptions c
INNER JOIN checkIds ON c.id = checkIds.id
WHERE c.subscriptionEnd > '2013-01-27'

最后在完成后删除临时表。


其他解决方案包括:

  • 一个巨大而笨拙的 IN 子句可能会成为性能噩梦:

    SELECT c.id, c.subscriptionEnd
    FROM subscriptions c
    WHERE c.subscriptionEnd > '2013-01-27'
    AND c.id IN (12345, 12939, ...)
  • 在您的 ID 列表中查找模式:

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

关于mysql - 查找mysql表和查询的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14569030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com