【发布时间】:2016-10-22 17:57:20
【问题描述】:
我在使用 MySQL 查询时遇到了一些问题,我们将不胜感激。我基本上有一个包含工作信息的表,我的查询是从表单中的多个选择中确定的。所以有user_id、date_from、date_to和client_name。
当用户选择所有字段user_id、date_from、date_to 和client_name 时,我的查询工作正常,结果显示为但我似乎无法在只有date_from 和date_to 被选中或client_name 和日期等。
如果只选择了一个字段或选择了所有字段,则查询需要工作。
跳得有道理!这是我的代码,当所有字段都填满时,结果可以正常工作。
SELECT * FROM `jobs`
WHERE (`job_date` BETWEEN '" . date('Y-m-d', strtotime($from_date)) . "' AND '" . date('Y-m-d', strtotime($to_date)) . "'
AND `client_name`='" . $client_name . "'
AND `staff_id`= '" . $staff_id . "')
【问题讨论】:
-
然后用 OR 代替 AND
-
或者,省略用户未选择的字段。日期的情况除外。执行
BETWEEN时必须有两个日期。因此,如果未选择日期,请将其设置为可能的最高或最低值。 -
我已尝试更改 and to or 但它不起作用。如果我选择说 client_name 是的,它可以工作,但如果我选择 user_id 和 client_name 它不能正常工作,它会显示分配给 staff_id 的所有结果。
-
@craigb88:你试过什么?
-
抱歉刚刚编辑了帖子。我已将 AND 更改为 OR