首页 > 解决方案 > 仅选择多个结果集中的那些行

问题描述

我有多个SELECT语句都返回相同的列,但可能返回不同的结果集。有没有办法选择数据库级别所有结果集中的所有行?

例如

|---------------------|------------------|---------|
|          ID         |        Name      |   Age   |
|---------------------|------------------|---------|
|          1          |       Paul       |   50    |
|          2          |       Peter      |   40    |
|          3          |       Frank      |   20    |
|          4          |       Pascal     |   60    |
|---------------------|------------------|---------|

SELECT 1
SELECT name FROM table WHERE age > 40
Result: Paul, Pascal

SELECT 2
SELECT name FROM table where name like 'P%'
Result: Paul, Peter, Pascal

SELECT 3 
SELECT name FROM table where id > 3
Result: Pascal

编辑:这是我的问题的一个非常简化的例子。语句可能会变得非常复杂(连接多个表),因此部分中的简单AND不是WHERE最终解决方案。

结果应该是Pascal。我正在寻找的是类似于“反向UNION”的东西。

或者,可以通过编程方式(NodeJS)实现这一点,但我想避免遍历所有结果集,因为它们可能非常庞大。

提前致谢!

标签: mysqlsqlnode.jsselectresultset

解决方案


有没有办法选择所有结果集中的所有行?

你似乎想要and

select name 
from table 
where age > 40 and name like 'P%' and id < 3

推荐阅读