MySQL: функция CONCAT_WS работает на локальном компьютере, но не на сервере - PullRequest
1 голос
/ 24 сентября 2010

Несколько дней назад я задал вопрос о моей проблеме, и мне посоветовали использовать функцию CONCAT_WS . Я использую CONCAT_WS в моей локальной базе данных MySQL, и она работает отлично. Но он не работает на сервере (приложение размещено) и выдает следующую ошибку.

FUNCTION test.CONCAT_WS не существует

Здесь test в строке ошибки - это имя моей базы данных на сервере.

Мой запрос выглядит так:

SELECT * FROM patient WHERE CONCAT_WS (',', LastName,FirstName,BirthDate ) NOT IN ('Abdul,Quddus,2000-09-30','Wasim,Akram,1993-09-12');

Может кто-нибудь сказать мне проблему или предложить другое решение, заданное в связанном вопросе выше?

Спасибо

1 Ответ

4 голосов
/ 24 сентября 2010

Самый простой способ исправить это - удалить пробел между именем функции и круглыми скобками, то есть CONCAT_WS(...) вместо CONCAT_WS (...).

Из Руководства MySQL :

По умолчанию не должно быть пробелов между именем функции и скобками после него.Это помогает анализатору MySQL различать вызовы функций и ссылки на таблицы или столбцы, имена которых совпадают с именами функций.

...

Вы можете указать серверу MySQL принимать пробелыпосле имен функций, начиная с параметра --sql-mode = IGNORE_SPACE.

Кроме того, это поведение зависит от версии MySQL, поэтому работает на одном сервере и не работает надругая цитата из справочной страницы " Разбор и разрешение имен функций ":

Количество имен функций, затронутых IGNORE_SPACE, значительно уменьшилось в MySQL 5.1.13 по сравнению с 200примерно до 30.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...