我可以选择每一行并限制具有不同值的行吗?

问题描述 投票:0回答:2

假设我有一个包含这样的列的表:'text''id',我想要选择所有id为1的列,我想限制所有id为null的列。

SELECT text, id FROM table_name WHERE id = 1 ..LIMIT 2 WHERE id = null ? ..

我想我必须以某种方式使用第二个查询,但我不知道真的知道如何?

SELECT text, id FROM table_name
INNER JOIN (SELECT text, id WHERE id = NULL LIMIT 2) as second ON .. on what  
should I join them ? .. WHERE id = 1

如何选择id为1的所有列并限制id为null的列?

SQL Fiddle

我想选择id为1的所有行,并且只选择id为null的2行。

mysql
2个回答
0
投票

如果您使用CTE,那么您应该能够限制在该CTE内返回的结果(公用表表达式)

WITH limit AS 
(
  SELECT id, text FROM table_name WHERE id IS NULL
  LIMIT 2
)
SELECT id, text FROM table_name WHERE is = 1
UNION ALL
SELECT * FROM limit;

0
投票

你想要一个工会。

SELECT text, id FROM table_name WHERE id = 1
UNION ALL
(SELECT text, id FROM table_name WHERE id is null LIMIT 2)

需要括号来保持限制不适用于整个联合,而不仅仅是第二个选择。

© www.soinside.com 2019 - 2024. All rights reserved.