gpt4 book ai didi

php - 检查当前日期是否在天数限制字段日期MYSQL内

转载 作者:行者123 更新时间:2023-11-29 12:50:04 25 4
gpt4 key购买 nike

在我的项目中,我需要用户订阅的未过期计划。当用户订阅计划时,它将被输入到表usersubscription中,其结构如下所示:

id  user_id   plan_id  subscribed_on

用于存储计划详细信息的表是subscription_plans:

id  plan   days_limit  discounted_rate  added_on    status  rate
1 PlanJ 30 240 1403094260 1 245.00

此表将包含项目中订阅计划的详细信息。视频可以是一个或多个计划的一部分。如果视频在计划内,它将存储在数据库subscribed_videos中。

id   plan_id  videoid

此外,一个计划可以是另一个计划的一部分。假设有计划 A 和 B。视频 1 是计划 B 的一部分,计划 a 也包含计划 B(相关计划)。因此,如果用户订阅了计划 A,则计划 B 中的视频将可供他使用。关联计划的表是subscription_groups。结构分享如下:

id  plan_id  assosiated_plan_id  added_on

我需要检查用户是否订阅了未过期的计划(包含所选视频)(即,它将在 subscribed_on+days_limit 天过期)。我现在使用的当前查询是

    select u.id,sp.days_limit from usersubscription as u INNER JOIN subscription_plans as 
sp ON sp.id=u.plan_id where (plan_id IN ( ( SELECT DISTINCT plan_id FROM subscribed_videos
sv where sv.videoid = 57 ) ) OR id IN ( SELECT DISTINCT assosiated_plan_id AS plan_id FROM
subscription_groups sg JOIN subscribed_videos sv ON sv.plan_id = sg.plan_id WHERE
sv.videoid = 57 ) ) and u.user_id=1 AND DATE_ADD(FROM_UNIXTIME(u.subscribed_on), INTERVAL
sp.days_limit DAY) > NOW()

这将检查 id 为 1 的用户是否订阅了包含 id 为 57 的视频的任何计划(主计划或关联计划)。我将日期保存为整数(unix 时间戳)。

谁能帮我解决这个问题吗?请检查这个SQL FIDDLE

提前致谢

最佳答案

错误已解决。 Check here

只需将子查询中 OR 子句后面的 id 指向您想要的任何字段

关于php - 检查当前日期是否在天数限制字段日期MYSQL内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24887253/

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