mysql - 如何从具有限制 0、1 的同一个表中运行多个选择查询并组合所有结果
问题描述
我需要从具有不同 where 条件的同一张表中查询数据。
如下查询所示,我需要从同一个表中执行 2 个选择查询,然后将结果合并为一个。
SELECT Username, AddTime
FROM Table1
WHERE Type = 3 AND AddTime>="2019-07-11 13:30:00" AND Username="Test1"
LIMIT 0, 1
SELECT Username, AddTime
FROM Table1
WHERE Type = 3 AND AddTime>="2019-07-11 13:40:00" AND Username="Test2"
LIMIT 0, 1
我需要将两个查询的结果合并为一个结果。所以基本上如果我有 5 个这样的查询,那么我需要得到行数等于 5 的结果。
我也可以每次都使用循环和查询语句,但这需要创建大量的 sql 连接。是否有可能在一个数据库连接中实现这一点?
解决方案
您可以在这里使用联合查询:
(SELECT Username, AddTime
FROM Table1
WHERE Type = 3 AND AddTime >= '2019-07-11 13:30:00' AND Username = 'Test1'
LIMIT 1)
UNION ALL
(SELECT Username, AddTime
FROM Table1
WHERE Type = 3 AND AddTime >= '2019-07-11 13:40:00' AND Username = 'Test2'
LIMIT 1);
如果您使用的是 MySQL 8+,也可能有一种方法可以将单个查询与ROW_NUMBER
.
推荐阅读
- magento - Magento 1.8.3 Helper data.php 从服务器中丢失
- python - 将列表转换为数组的 Numpy 问题
- swift - 放弃对 iOS 12 的支持时仍会收到 INStartAudioCallIntent (INStartCallIntent)
- java - 如果自动增量字段不是第一个,jOOQ 可以支持复合主键吗
- python - 从字典中删除对象
- ruby - 是否可以“重新推送”在 rubygems.org 上以相同版本发布的 yanked 版本 gem?
- php - 使用 str_replace 在韩语字符中显示菱形问号字符
- vue.js - 通过分页在 b-table 上显示剩余的 API 数据
- python - 当列表的元素值为列表时如何在Python中摆脱列表
- arrays - Powershell:单击 GUI 上的按钮移动到数组中的下一个项目