以下查询返回1行:
SELECT `coach_id` FROM `table_a` WHERE `coach_id` = 8 UNION ALL SELECT `coach_id` FROM `table_b` WHERE `coach_id` = 8
但是SELECT coach_id FROM table_b WHERE coach_id = 8返回2行。
SELECT coach_id FROM table_b WHERE coach_id = 8
并SELECT coach_id FROM table_a WHERE coach_id = 8返回1行。
SELECT coach_id FROM table_a WHERE coach_id = 8
我之所以UNION ALL避免DISTINCT过滤,是因为我实际上只是对总行数感兴趣。看起来它的行为仍然像常规的UNIONaka一样UNION DISTINCT。
UNION ALL
DISTINCT
UNION
UNION DISTINCT
这里发生了什么?查询4.5.2在MariaDB10.1.9服务器上的phpMyAdmin界面中执行。
4.5.2
10.1.9
我刚刚发现mysql命令行客户端的行为与预期的一样。所以,失败必须是我的堆内的某处nginx 1.8.0,PHP 5.6.16 mysqli和phpmyadmin。
nginx 1.8.0
PHP 5.6.16
mysqli
phpmyadmin
当我从php脚本(使用mysqli)运行查询时,它也正确返回3行。我想除了phpMyAdmin之外,什么都不会引起这种现象。到目前为止,感谢您的帮助,对于这个问题引起误解,我们深表歉意。我不知道…
这是phpMyAdmin错误,已在v4.5.3.0(2015-12-23)中修复。