测试数据:mysql> select * from t2;+----+--------+---------------------+------------+| id | userid | inputDate | infoStatus |+----+--------+---------------------+------------+| 1 | 1 | 2014-07-11 00:00:00 | 20013 | | 2 | 1 | 2014-07-11 00:00:00 | 0 | | 3 | 2 | 2014-07-12 00:00:11 | 20015 | | 4 | 2 | 2014-07-12 00:00:22 | 20013 | | 5 | 2 | 2014-07-14 00:00:00 | 0 | | 6 | 2 | 2014-07-15 00:00:00 | 20013 | | 7 | 2 | 2014-07-15 00:00:00 | 0 | | 8 | 2 | 2014-07-16 00:00:00 | 0 | | 9 | 2 | 2014-07-13 00:00:00 | 20013 | | 10 | 2 | 2014-07-13 00:00:00 | 0 | | 11 | 2 | 2014-07-14 00:00:00 | 0 | +----+--------+---------------------+------------+查询sql:select id,userid,date(inputDate) as date,max(infoStatus) as m,min(infoStatus) as i,if(min(infoStatus)=0,0,max(infoStatus)) as max from t2 where infoStatus = 0 or infoStatus <= 99999 group by date;回执结果:+----+--------+------------+-------+-------+-------+| id | userid | date | m | i | max |+----+--------+------------+-------+-------+-------+| 1 | 1 | 2014-07-11 | 20013 | 0 | 0 | | 3 | 2 | 2014-07-12 | 20015 | 20013 | 20015 | | 9 | 2 | 2014-07-13 | 20013 | 0 | 0 | | 5 | 2 | 2014-07-14 | 0 | 0 | 0 | | 6 | 2 | 2014-07-15 | 20013 | 0 | 0 | | 8 | 2 | 2014-07-16 | 0 | 0 | 0 | +----+--------+------------+-------+-------+-------+我的思路是按照时间分组,并同时查询最小,跟最大的,如果最小的为0,那max字段就为0,否则就取最大的那个
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号