mysql - 根据我的查询,它不应该返回值。但它显示了一些值
问题描述
我想在我使用下面提到的查询来检索它的日期范围之间接收数据。但如果我输入一个未输入记录的日期,它会显示最近 3 天的记录。
这是我的查询
SELECT date
, employee
FROM daily_sale
WHERE employee = '$emp'
OR employee = 'both'
AND date BETWEEN '$from' and '$to'
ORDER
BY date DESC
**
我想要的是搜索一名员工在给定日期工作了多少个日期。员工表值是“L”、“D”和“Both”。因此,如果我使用“L”搜索,我想接收该表格中具有“L”和“Both”值的日期
**
解决方案
我认为您需要更正过滤条件,例如将您的OR
子句分组在括号中,以便正确应用日期范围过滤器的其余部分
SELECT `date`,`employee`
FROM `daily_sale`
WHERE (`employee` = :emp OR `employee` = 'both')
AND date BETWEEN :from and :to
ORDER BY `date` DESC
也不要在查询中直接使用变量,而是使用准备好的语句
推荐阅读
- angularjs - 如何在 ag-grid 的社区版中实现 Master-Detail 组件
- c# - 无法使用 c#asp.net 连接到 REST api
- android - 使用Transition引起的问题
- android-studio - 在 Android Studio 中,“Layout Captures”工具有什么用
- python - 如何将关键字附加到 JPG 图像中的 IPTC 数据?
- html - 我想在 ng-repeat 循环中绑定动态计数值?
- laravel - 如何在 Laravel 的对象变量中获取随机行?
- javascript - 使用 Angular 创建可缩放的树形网页
- angular - 如何在自定义验证器中使用可注入服务
- javascript - 根据另一个自定义数组对数组中的对象属性进行排序