没有PHP的Mysql选择查询
我已经编写了下面的select查询,它返回所需的记录。我知道如何用PHP编写。我想知道一个select mysql查询是否可以实现这一点没有PHP的Mysql选择查询,mysql,sql,Mysql,Sql,我已经编写了下面的select查询,它返回所需的记录。我知道如何用PHP编写。我想知道一个select mysql查询是否可以实现这一点 SELECT annual_end_date ,email ,expiry_id ,status ,verify ,email ,password FROM Users WHERE email = 'test@test.com' AND password = 'password' 在同一个表中,我还想检
SELECT annual_end_date
,email
,expiry_id
,status
,verify
,email
,password
FROM Users
WHERE email = 'test@test.com'
AND password = 'password'
在同一个表中,我还想检查下面的psuedo代码PHP,返回expiry\u id=0记录,以及annual\u end\u date是一个日期列,它小于当前日期
如果到期日id不等于“0”,则应检查订阅表并比较“支付结束日期”列
订阅表只有一个字段pay\u end\u date,其中有一个日期列您可以在查询中添加类似的内容
AND ( ( expiry_id='0' AND annual_end_date < DATE(NOW()) )
OR ( expiry_id<>'0' AND EXISTS ( SELECT 1
FROM subscription s
WHERE s.user_id = Users.user_id -- ?
AND s.pay_end_date < DATE(NOW())
)
)
)
规范要求检查订阅表,但没有说明订阅与用户之间的关系。子查询基于对subscription中外键列和Users中引用列的猜测。您可以使用mysql语句Left Join、Right Join、,或加入或执行多维语句。此处根本没有订阅表,因此我们不知道订阅如何应用于您的数据。@CayceK订阅表只有一个字段pay_end_date,其中包含一个日期列。还有其他查询模式将返回等效结果。这只是一个旨在说明一种可能模式的示例。很可能还有其他方法可以提供更好的性能。
If expiry_id!='0'
check pay_end_date column in subscription table
If pay_end_date is less then the current date then show records
AND ( ( expiry_id='0' AND annual_end_date < DATE(NOW()) )
OR ( expiry_id<>'0' AND EXISTS ( SELECT 1
FROM subscription s
WHERE s.user_id = Users.user_id -- ?
AND s.pay_end_date < DATE(NOW())
)
)
)