mysql - 合并 2 个 MySQL 查询

标签 mysql sql

我有这个问题

SELECT COUNT(*) from `login_log` where from_unixtime(`date`) >= DATE_SUB(NOW(), INTERVAL 1 WEEK);

和同一个有 1 个差异。这不是 1 WEEK ,而是 1 MONTH 我怎样才能将这两者结合起来并将它们分配给别名?

最佳答案

我会用条件聚合来做到这一点:

SELECT SUM(from_unixtime(`date`) >= DATE_SUB(NOW(), INTERVAL 1 WEEK)),
       SUM(from_unixtime(`date`) >= DATE_SUB(NOW(), INTERVAL 1 MONTH))
FROM `login_log`;

MySQL 将 bool 值视为整数,1 为“真”,0 为“假”。因此,使用 sum() 您可以计算匹配值的数量。 (在其他数据库中,您可以使用 case 做类似的事情。)

关于mysql - 合并 2 个 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25106607/

相关文章:

php - 新的 mySQL 查询或页面之间的 POST 信息?

mysql - 如何在 mysql 中拆分/反透视 group_concat?

java - 从 ResultSet 获取 boolean 值

php - symfony 2.8 : id AND uid column in same table

php - 如何用foreach批量更新记录?

php - 如何创建 MySQL 触发器来跟踪更改

sql - PostgreSQL 多列唯一性不起作用

sql - 两个表之间的配置单元联接

mysql - 有条件触发

asp.net - 在 MySQL 中使用 INNER JOIN 和 SqlDataSource 时出现语法错误