使用BETWEEN时更正SQL Select语句

问题描述

|| 我需要在这里做一些事情,而我对此应该如何工作感到困惑。 这是我需要使用的变量:
Date Range
Employee ID
Team
如果有人要搜索特定的帐号,则可以使用附加的搜索字词(acct_number = \'$ _ REQUEST [q] \')。 每个变量都有一个下拉选择框,所有记录的第一个选项是*。使用日期选择器,日历样式设置日期,并自动将日期设置为1 = 7天前,日期2 =今天。 我的查询
SELECT * FROM table
WHERE job_date BETWEEN \'$search_date1\' AND \'$search_date2\' AND
    employee_id=\'$searched_employee\' AND team=\'$searched_team\' AND
    acct_number=\'$_REQUEST[q]\'
ORDER BY employee_id desc
我知道有记录,但搜索仍然没有记录。在该日期之后,AND员工ID = \'$ searched_employee \'可能是*,因此它应该返回所有记录,并且对团队也是如此。 回显变量以尝试确保已设置某些内容,这给了我: 找不到2011年5月1日至2011年5月31日之间以及团队“团队”中“雇员”的记录。 使用BETWEEN后,是否可以在Select语句中使用AND请求更多? 提前致谢! -乔尔     

解决方法

        您不能在WHERE子句中使用\'* \'通配符。 尝试对查询中使用的条件使用变量,例如:
if( is_numeric( $searched_employee ) )
  $employee_cond = \" AND employee_id=$searched_employee\";
else
  $employee_cond = \"\";
并在查询中放入
$employee_cond
而不是
AND employee_id=\'$searched_employee\'
。 对您需要的每个条件重复上述步骤。     ,        将括号放在日期范围条件周围: SELECT * FROM table WHERE(job_date在\'$ search_date1 \'和\'$ search_date2 \'之间)AND employee_id = \'$ searched_employee \'AND team = \'$ searched_team \'AND acct_number = \'$ _ REQUEST [q] \'ORDER BY employee_id desc     ,        我认为这与您的BETWEEN声明无关,因为这是您“与”在一起的标准数量。您要提供的所有条件都必须是真实的,才能将其包含在集合中... 例如:您的开始/结束日期是5月1日至5月31日,但您要查找的$ Searched_Employee在该范围内没有活动,或者该雇员与您的Acct_Number与$ searched_team等无关。 您正在明确地寻找所有这些条件。您可能打算继续执行某些“或”条件,例如
select 
       Jobs.*,Employees.LastName,Employees.FirstName,Employees.{whatever other columns}
   from 
      Jobs 
         join Employees on Jobs.EmployeeID = Employees.ID
   where
          Jobs.job_Date between StartDate and StopDate
      AND Jobs.employee_id = SearchedEmployee
      AND Jobs.team = SearchedTeam
      AND Jobs.Acct_Number = SearchedAccount
*仅真正用于*,例如count()或用于从查询返回的字段,并且不在where / join条件内使用(除非其为count())。因此,已对上面的内容进行了修改,以保留您的所有“ AND”子句,而且还显示了从联接表中获取特定或所有字段。 由于您的实际表不可用,因此从中查询的表名已被修改。如您所见,我做了Jobs。*来返回该表中的所有字段,但是明确包括了Employees。{certain个别字段}。 希望此澄清有助于您将来的查询...     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...