SELECT COUNT(*) FROM (
SELECT 1 FROM ...
UNION SELECT 1 FROM ...
UNION SELECT 1 FROM ...
) as tmp_table
尽管结果集包括多行,
COUNT(*)
总是返回1...为什么?UNION SELECT
自动对结果进行分组,这意味着您将不会看到重复的行。您需要使用UNION ALL SELECT ...
,这样您的结果就不会被分组,您将能够看到重复的行。
重复的行意味着,因为您总是选择 1,所以它会按照 1 进行分组。
SELECT 1 FROM ... UNION SELECT 1 FROM ... UNION SELECT 1 FROM ...
。 - ta.speot.is