Ниже запрос успешно выполняется в версии 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 планирует изменить свой синтаксис, чтобы не поддерживать без круглых скобок?

3
zawmn83 23 Фев 2016 в 07:02

2 ответа

Лучший ответ

Похоже, это была ошибка библиотеки парсера, используемой phpMyAdmin. Я открыл отчет об ошибке на странице https://github.com/phpmyadmin/sql-parser / issues / 43, но вроде уже исправили; например я не могу воспроизвести инверсию 4.5.5.1. Я предлагаю вам обновить свой phpMyAdmin.

2
Isaac Bennetch 7 Мар 2016 в 15:06

Попробуйте это, значит ваш второй вариант

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

А также рабочий (в 4.4.6) без круглых скобок,

Отредактировано

Но я только что тестировал в 4.5 & amp; 4.6 : круглые скобки обязательны в соответствии с новыми стандартами.

1
Qazi 23 Фев 2016 в 05:22