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

时间:2016-02-23 04:02:01

标签: replace phpmyadmin token

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

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

但是,在我将phpMyAdmin升级为version 4.5.4.1后,它在WHERE附近的REPLACE子句中出现了以下错误。 此错误可以使用任何表重现任何数据库。

如果我将查询更改为以下,则表明它正在运行。

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

这是phpMyAdmin的错误吗?或MySQL计划改变其语法,不支持括号?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

它的工作(在4.4.6中)没有圆括号,

<强>被修改

但我刚刚测试了 4.5 &amp;根据新标准 4.6 ,似乎圆括号