SELECT COUNT(*) FROM (
SELECT 1 FROM ...
UNION SELECT 1 FROM ...
UNION SELECT 1 FROM ...
) as tmp_table
尽管结果集包含多行,COUNT(*)
将始终返回1 ...为什么?
答案 0 :(得分:9)
UNION SELECT
会自动对结果进行分组,这意味着您不会看到重复的行。您需要的是UNION ALL SELECT...
,那么您的结果将不会被分组,您将看到重复的行。
重复行的含义,因为您始终选择1,因此它按1分组。