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。
以下查询在 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。