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

时间:2019-01-27 18:17:32

标签: mysql

比方说,我有一个表,其列如下:'text''id',所以我想选择所有ID为1的列,而我想限制ID为1的所有列。空。

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行。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

你想要一个工会。

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

需要用括号将限制应用于整个联合,而不仅仅是第二选择。