(SELECT 1 `a`) UNION (SELECT 2 `a`) ORDER BY `a` DESC LIMIT 1
在 MySQL 中是一个完全有效的查询,据我所知
SELECT 1 `a` UNION SELECT 2 `a` ORDER BY `a` DESC LIMIT 1
然而,
SELECT *, ((SELECT 1 `a`) UNION (SELECT 2 `a`) ORDER BY `a` DESC LIMIT 1) `a` FROM `customers`
会出现错误。
您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以了解在“UNION (SELECT 2 `a`) ORDER BY `a` DESC LIMIT 1) `a` FROM `customers` 附近使用的正确语法
和
SELECT *, (SELECT 1 `a` UNION SELECT 2 `a` ORDER BY `a` DESC LIMIT 1) `a` FROM `customers`
是有效的。
有人能解释一下为什么吗?还是我遇到了 MySQL 中的错误?
补充:这仅适用于 MySQL 5.7。MySQL 8 运行良好。