php - 不计入 0000-00-00 的 PHP mysql 查询
问题描述
我有 4 个日期需要计算,第一个日期需要等于 $_POST,其他 3 个不应算作0000-00-00
日期。
我试过这个查询:
$sql_list = "SELECT Agent,count(datum_obrade) as obrada,
count(datum_kontakta) as kontakti,
count(datum_vracanja) as zadrzani,
count(datum_terminacije) as terminacija from wb_base WHERE datum_obrade = '".$_POST["From"]."'
group by Agent";
问题是这count()
将算作0000-00-00
日期(我的列是 PHPMyAdmin 设置为 DATE)我注意到如果我NULL
在 DB 中手动将日期设置为查询不会计算它,但问题是我的 jquery 日期选择器不会返回NULL
到 db如果它是空的。我也在这里问过这个问题
那么如何设置这个查询来计算所有不是 0000-00-00 的日期。如果我在AND
之后添加,WHERE
则查询需要匹配 3 个条件。此外,如果我使用OR
它仍然会计数错误。
解决方案
尝试这个
sql_list = "SELECT Agent,count(datum_obrade) as obrada,
count(case when datum_kontakta>0 then 1 end) as kontakti,
count(case when datum_vracanja>0 then 1 end) as zadrzani,
count(case when datum_terminacije>0 then 1 end) as terminacija from wb_base WHERE datum_obrade = '".$_POST["From"]."'
group by Agent";
该case
子句过滤掉所有不是>0
. 在这些情况下,一个null
值被发送到它不会得分的count()
函数。所以最后只计算“有效”日期。
推荐阅读
- io - 如何加快 PyPy3 中的文件 I/O?
- discord.js - 不和谐没有在嵌入上打印自定义表情符号?
- javascript - 单击时 React-Modal-Image 显示偏离中心的图像
- python - 通过openCV绘图时,光标冻结在输出图片上
- wolfram-mathematica - Mathematica 中的茎叶图
- html - 使用侧边栏中的 flexbox 左对齐内容
- vue.js - VueJS方法和函数的区别?
- mongodb - Loopback:添加具有默认值的新字段,如何更新 mongoDB 中的所有文档
- arrays - 如何在 swift 中另一个数组内的数组的 tableView 中显示项目?
- java - (处理中)如何在移动时旋转播放器并有跟随相机?