You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:在phpMyAdmin中创建CTE语句提示unrecognized statement type. (near WITH)

解决phpMyAdmin中CTE语句报错"unrecognized statement type. (near WITH)"的问题

这个问题的核心原因其实一目了然——你的MySQL版本不支持CTE(公共表表达式)语法!

为什么会报错?

MySQL是从8.0版本开始正式引入WITH关键字来实现CTE的,而你当前使用的是MySQL 5.0.12,这个版本比CTE的支持早了整整十几年,数据库本身根本不认识WITH开头的语句,所以才会抛出"unrecognized statement type"的错误。

这个问题和phpMyAdmin、PHP 7.2.0都没有关系:

  • phpMyAdmin只是负责把你输入的SQL语句转发给MySQL执行,报错是MySQL返回的,不是工具本身的问题
  • PHP版本只影响后端代码和数据库的交互逻辑,不影响数据库本身对SQL语法的支持

解决办法

你有两个可选方向:

  • 升级MySQL版本(推荐):把MySQL升级到8.0及以上的稳定版本,之后就能正常使用WITH开头的CTE语句了,这是一劳永逸的方案。
  • 改写SQL语句:如果暂时没法升级数据库,就把CTE逻辑改写成MySQL 5.0支持的子查询或者临时表形式。举个简单例子:
    原CTE语句:
    WITH user_cte AS (SELECT id, username FROM users WHERE status = 1)
    SELECT * FROM user_cte WHERE username LIKE '%test%';
    
    改写成子查询:
    SELECT * FROM (SELECT id, username FROM users WHERE status = 1) AS user_cte WHERE username LIKE '%test%';
    

内容的提问来源于stack exchange,提问作者Akash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:39:45