phpMyAdmin 4.5.4,REPLACE 语句中的意外令牌错误

phpMyAdmin 4.5.4, Unexpected token error in REPLACE statement

以下查询在 phpMyAdmin 3.5.3 版本中 运行 成功。

SELECT  *
FROM mytable
WHERE REPLACE (Col, 'a', '')  = 'bbb'

但是在我将 phpMyAdmin 升级到 version 4.5.4.1 之后,它在 REPLACE 附近的 WHERE 子句处出现以下错误。 此错误可以重现具有任何 table 的任何数据库。

如果我将查询更改为以下内容,它就可以正常工作。

SELECT  *
FROM mytable
WHERE (REPLACE (Col, 'a', ''))  = 'bbb'

难道是phpMyAdmin的bug?或 MySQL 计划更改其语法以不支持没有括号?

试试这个,这意味着你的第二个选择

SELECT  *
FROM mytable
WHERE (REPLACE (Col, 'a', ''))  = 'bbb'

它也可以在没有圆括号的情况下工作(在 4.4.6 中),

已编辑

但我刚刚在4.5 & 4.6中测试过,看来圆括号是必须的,根据新标准

这似乎是 phpMyAdmin 使用的解析器库的错误。我已经在 https://github.com/phpmyadmin/sql-parser/issues/43 上打开了一个错误报告,但它似乎已经被修复了;例如我无法重现它的反转 4.5.5.1。我建议你升级你的 phpMyAdmin。