我有一个显示表格数据的表单。表单包含帐户ID和开始日期和结束日期的字段。我想要显示多个场景并在下面解释它们。
如果仅选择了帐户ID,则应显示与该帐户ID相关的所有行。
如果仅选择了开始日期和结束日期,则应显示该范围内的所有行。
如果选择了所有3个字段(帐户ID,开始日期和结束日期),则会在指定的日期范围内显示特定帐户ID。
如果未选择任何字段,则显示整个表格。
我能够找出情景1和2,但却无法获得3& 4上班。以下是我用过的查询:
SELECT * FROM tbl_call_log_detail WHERE dealer_id = '$call_id' OR time_stamp <= '$endDate' AND time_stamp >= '$startDate' ORDER BY id ASC
我甚至尝试将括号括在OR子句中,但这也没有做任何事情。
答案 0 :(得分:0)
我假设如果没有选中,那么它的值是一个空字符串。
SELECT * FROM tbl_call_log_detail
WHERE
(dealer_id = '$call_id' AND '$endDate'='1970-01-01' AND '$startDate' ='1970-01-01')
OR ( time_stamp <= '$endDate' AND time_stamp >= '$startDate'
AND (dealer_id = '$call_id' OR'$call_id'='' ))
OR ('$endDate'='1970-01-01' AND '$startDate' ='1970-01-01' AND '$call_id'='')
ORDER BY id ASC