无法识别的语句类型。 (在位置 0 的“WITH”附近)即使在升级 MariaDB 版本之后

Posted

技术标签:

【中文标题】无法识别的语句类型。 (在位置 0 的“WITH”附近)即使在升级 MariaDB 版本之后【英文标题】:Unrecognized statement type. (near "WITH" at position 0) even after upgrade MariaDB version 【发布时间】:2019-03-13 21:51:01 【问题描述】:

我在 windows pc 上使用了包含 mariadb 10.1.x 的 xampp。 由于我需要使用至少需要 mariadb 10.2.x 的递归 cte 函数,我尝试寻找新的 xampp 但没有找到任何具有 mariadb 10.2 的,所以我在 xampp mysql 文件夹上手动安装 mariadb 10.3。它有效并向我展示了 mariadb 10.3 的正确版本,但是当我在查询中尝试它时,它仍然返回错误“在 WITH 附近无法识别的语句”有什么建议可以解决我的问题吗?

WITH RECURSIVE category AS (
    SELECT NULL AS col
    UNION
    SELECT "THIS NEVER SHOWS UP" AS col FROM category
)

*已编辑 即使有来自 mariaDB doc 的示例查询,它仍然给我相同的 error

【问题讨论】:

你快到了Recursive CTE 你从不使用那个 CTE...这本身就是一个语法错误,因为没有实际的查询。 MariaDB 10.2.2 或更高版本实际上应该支持递归 CTE。只需以文档为例即可上手。 对不起,我在帖子上提供随机查询不好......用mariaDB doc示例在那里编辑了我的问题,但语句仍然无法识别相同的错误 似乎更多的是与安装和配置有关的问题,而不是编程问题。因此我认为这个问题更适合SuperUser 我希望“...语法错误...”,而不是“无法识别的语句...”您在哪里运行它?你在使用 php 吗?如果是这样,让我们​​看看调用它的语句。 【参考方案1】:

WITH 关键字(公用表表达式)尚不被 phpmyadmin 的 sql 解析器支持 可以查看here。

在使用相同语法之前,请使用其他替代工具,例如 macos 的 sequal pro 等或 sql 命令行本身。

【讨论】:

以上是关于无法识别的语句类型。 (在位置 0 的“WITH”附近)即使在升级 MariaDB 版本之后的主要内容,如果未能解决你的问题,请参考以下文章

我更新到 MariaDB 10.2.20 以使用 CTE。在 phpMyAdmin 中仍然出现“无法识别的语句类型。(靠近 WITH)

无法识别的名称:使用 bigquery 标准 sql 进行嵌套查询时出错

无法识别的图像文件类型

php 无法识别的自定义帖子类型的帖子配额。一些旧主题注册Pro Sites无法识别的帖子类型,这可以用于限制

导入 PHP MySql 数据库

“无法识别的选择器发送到实例”,即使 XCode 说实例是正确的类型