mysql - 多个查询合而为一?

标签 mysql sql database

如何将其放入一个查询中?

例如:

SELECT * FROM `result` WHERE status = 'new' AND YEAR(`end_date`)  = '2012' limit 20
SELECT * FROM `result` WHERE status = 'new' AND YEAR(`end_date`)  = '2013' limit 20
SELECT * FROM `result` WHERE status = 'new' AND YEAR(`end_date`)  = '2014' limit 20
SELECT * FROM `result` WHERE status = 'new' AND YEAR(`end_date`)  = '2015' limit 20

SELECT * FROM `result` WHERE status = 'new' AND DAY(`end_date`)  = '1' limit 20
SELECT * FROM `result` WHERE status = 'new' AND DAY(`end_date`)  = '2' limit 20
... and to 31

and same for the Month Jan to Dec

基本上显示每天、每月、每年的20条记录。

最佳答案

您可以使用 UNION 合并结果集这样:

SELECT * FROM `result` WHERE status = 'new' AND YEAR(`end_date`)  = '2012' limit 20
UNION
SELECT * FROM `result` WHERE status = 'new' AND YEAR(`end_date`)  = '2013' limit 20
UNION
SELECT * FROM `result` WHERE status = 'new' AND YEAR(`end_date`)  = '2014' limit 20
UNION
SELECT * FROM `result` WHERE status = 'new' AND YEAR(`end_date`)  = '2015' limit 20
UNION
SELECT * FROM `result` WHERE status = 'new' AND DAY(`end_date`)  = '1' limit 20
UNION 
SELECT * FROM `result` WHERE status = 'new' AND DAY(`end_date`)  = '2' limit 20
ORDER BY submit_date DESC

关于mysql - 多个查询合而为一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11808100/

相关文章:

php - foreach循环的迭代问题

mysql - SQL - 如何使用 BETWEEN (mysql) 获取时间戳范围?

sql - 在 postgresql 中,只有当 "name"为 false 时,如何才能使 "deleted"唯一?

C# SQL Connection try/catch vs using vs try/catch w/using

sql-server - 连接到 oracle dbms 时 sql server 上的链接服务器问题

mysql - 如何在 SQL 的 3 个特定列中输入 3 个词并搜索这些词?

java - HQL多对多查询

php - 检查MYSQL表中是否存在两个Id

mysql - 连接和多重和条件

sql - 在 SQL 中正确使用 Count() 和 Sum() 吗?