mysql - 如何以uid为基准查询所有一分钟之内有两条数据以上的数据
问题描述
如下表
uid order moneytime1 100 10 2016-08-08 12:00:001 101 6 2016-08-08 12:00:582 102 8 2016-08-08 12:02:002 103 10 2016-08-08 12:02:332 104 15 2016-08-08 12:03:003 105 10 2016-08-08 12:03:011 106 10 2016-08-08 12:05:00
根据题意需要找到的数据:
uid order moneytime1 100 10 2016-08-08 12:00:001 101 6 2016-08-08 12:00:582 102 8 2016-08-08 12:02:002 103 10 2016-08-08 12:02:332 104 15 2016-08-08 12:03:00
问题解答
回答1:写法一:
SELECT * FROM table AS aWHERE EXISTS ( SELECT 1 FROM table AS b WHERE a.uid = b.uid AND b.time >= date_sub(now(), INTERVAL 1 minute) GROUP BY b.uid HAVING count(1) > 1);
写法二:
SELECT * FROM tableWHERE uid IN ( SELECT uid FROM table WHERE time >= date_sub(now(), INTERVAL 1 minute) GROUP BY uid HAVING count(1) > 1);
建议将date_sub(now(), INTERVAL 1 minute)用程序运算出来再代替进去。
相关文章:
1. navicat - Mysql无法连接2. mysql - SELECT 多個資料表及多個欄位3. python中merge后文件莫名变得非常大4. javascript - js 对中文进行MD5加密和python结果不一样。5. PHP中的$this代表当前的类还是方法?6. python打包代码上传PYPI出现错误500,虚心求教7. 级联对象 - mysql 级联查询问题8. python - 如何使用requests模块在一个post中提交含有多个相同名称的数据?9. thinkphp中Controller里面使用Request::File(’image’);10. python - 用ffmpeg采集视频,用terminate没法结束进程

网公网安备