首页 > 解决方案 > SQL 将输出限制为多个结果

问题描述

我有这个查询。

SELECT * FROM Customer WHERE TAGID IN ('UK', 'Germany');

这会输出结果以显示英国和德国的所有客户,但您可以想象,会有大量输出,我只要求它为英国输出 2 个结果,为德国输出 2 个结果?

这可能吗?

标签: mysqlsql

解决方案


UNION ALL想到:

(SELECT c.*
 FROM Customer c
 WHERE TAGID = 'UK'
 LIMIT 2
) UNION ALL
(SELECT c.*
 FROM Customer c
 WHERE TAGID = 'Germany'
 LIMIT 2
);

请注意,这可以利用Customer(TagID). 此外,这会返回任意两行。您可以使用 anORDER BY返回最新的、最旧的、最大的、最小的、最红的、最蓝的等等。

是一个 db<>fiddle。


推荐阅读