MariaDB声称是MySQL的直接替代品,但MySQL docs声明此功能自5.7.7版本开始提供:
在MySQL 5.7.7之前,SELECT语句不能包含子查询 FROM子句。
MariaDB knowledge base说这是不允许的:
SELECT语句不能在FROM子句中包含子查询。
但是,这不在MariaDB's compatibility page中列出。
我做了一些测试,看起来似乎没有支持MariaDB中的这种查询,但MariaDB文档中的冲突信息让我感到困惑。那么,MariaDB的哪一页是对的?是否真的不支持此功能?
答案 0 :(得分:3)
如果你自己在最新版本的MariaDB上进行了测试(mysql v5.7.7于2015年4月发布,所以它不是新的,不过你应该测试最新的MariaDB),结果是MariaDB实例不支持视图的from子句中的子查询,那就是它。
是的,它应该在差异部分突出显示。您可以考虑针对文档错误提出错误报告。由于关于视图的MariaDB手册是准确的,因此这只是一个文档问题。只需确保您测试了最新的MariaDB版本。
答案 1 :(得分:1)
看起来它已经在10.2.x(自10.2.1开始)实施,目前是10.2.5 RC(候选版本)。
https://mariadb.com/kb/en/mariadb/mariadb-1021-release-notes/
答案 2 :(得分:-1)
MariaDB没有在视图的FROM
子句中实现子查询,因为它基于没有实现该功能的MySQL版本。
https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/部分说:
出于所有实际目的,MariaDB是替换相同MySQL版本的二进制代码(例如MySQL 5.1 - > MariaDB 5.1,MariaDB 5.2和MariaDB 5.3兼容.MySQL 5.5是与MariaDB 5.5兼容,并与MariaDB 10.0实现兼容。
(强调我的)
并非所有MySQL 5.6,5.7或更高版本的功能都在MariaDB中实现。文档非常清楚兼容性。
MariaDB是MySQL 5.5的一个分支,于2010年发布。所以MariaDB应该是向后兼容的,并且是一个替代品#34;那个主要版本的MySQL。
从那时起,MySQL发布了主要版本5.6和5.7,目前正在开发下一个版本,编号为8.0。
MariaDB已经从MySQL 5.6和5.7反向移植了一些功能,但显然不是MySQL 5.6 / 5.7的所有功能。因此,它与MySQL的兼容性有所不同,随着时间的推移差异会越来越大。