我可以在select语句中使用两个Where

时间:2013-04-19 15:42:19

标签: php mysql select where

我正在尝试在查询中获取日期范围和事务类型。我在PHP中使用Mysql数据库。 最初,声明是

         ("select * from accounting WHERE date between '$startdate' AND 
        '$enddate'",$prop);

它工作得很漂亮,没有问题@ all。但我还需要它在数据库中选择一个名为事务类型的列。 以下是我修改它的方法:

           ("SELECT date, account, description, Income FROM accounting where 
           transactiontype = 'Income' and WHERE date between '$startdate' AND 
           '$enddate' order by date ASC",$prop);

我收到错误消息: 错误:SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在'2012年9月1日'和'2013/04/17'之间的日期之间使用正确的语法'ASC'在第1行的顺序 查询:选择日期,帐户,描述,收入来自会计,其中,transactiontype ='收入',以及'2012/09/01'和'2013/04/17'之间的日期,按日期ASC排序 非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

并且足够了,你不需要借调WHERE。

("SELECT `date`, account, description, Income 
  FROM accounting 
  WHERE transactiontype = 'Income' 
  AND `date` between '$startdate' 
  AND '$enddate' order by `date` ASC",$prop);

顺便说一下,尽量避免使用保留关键字作为表/列名称(如日期)。 你必须一直逃避它们(并且也会一直忘记它)。

答案 1 :(得分:0)

("SELECT date, account, description, Income FROM accounting where 
  transactiontype = 'Income' and "date" between '$startdate' AND 
 '$enddate' order by date ASC",$prop);

您可能还需要将日期括在语音标记或刻度(`)中,如图所示。

答案 2 :(得分:0)

请删除第二个where子句..

       (SELECT date, account, description, Income FROM accounting where 
       transactiontype = 'Income' and (date between '$startdate' AND 
       '$enddate') order by date ASC",$prop )
相关问题