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. python - 《flask web 開發》一書,數據庫中多對多關系的實現問題?2. 關于phpstudy設置主從數據庫3. mysql - 我用SQL語句 更新 行的時候,發現全部 中文都被清空了,請問怎么解決?4. centos7 編譯安裝 Python 3.5.1 失敗5. python3.x - python3.5使用pyinstaller打包報錯找不到libpython3.5mu.so.1.0等文件求解?6. phpStudy2017輕巧版mysql無法啟動7. 為什么我輸入了refresh不會跳轉?請教大神支招!8. 為什么顯示數據丟失呢9. 為什么我寫的PHP不行10. MySQL在什么情況下會被堵死?
