Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有PHP的Mysql选择查询_Mysql_Sql - Fatal编程技术网

没有PHP的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查询,它返回所需的记录。我知道如何用PHP编写。我想知道一个select mysql查询是否可以实现这一点

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())
                                    )
        )
     )