MySQL: la función CONCAT_WS se está ejecutando en local, pero no en el servidor

StackOverflow https://stackoverflow.com/questions/3786378

  •  05-10-2019
  •  | 
  •  

Pregunta

Algunos días le pregunté a un pregunta sobre mi problema y me aconsejaron usar CONCAT_WS función . Estoy usando CONCAT_WS en mi base de datos MySQL local y que está funcionando perfectamente. Pero no está funcionando en el servidor (aplicación alojada) y generar el siguiente error.

test.CONCAT_WS función no existe

Aquí test en cadena de error es mi nombre de base de datos en el servidor.

Mi consulta es la siguiente:

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

Puede alguien decirme el problema o me sugieren otra solución pidió que se trate vinculado anteriormente?

Gracias

¿Fue útil?

Solución

La forma más fácil de solucionar es mediante la eliminación de los espacios en blanco entre el nombre de la función y el paréntesis, es decir, en lugar de CONCAT_WS(...) CONCAT_WS (...).

Desde el MySQL Manual :

Por defecto, no debe de ser espacios en blanco entre un nombre de función y el paréntesis que le sigue. Esta ayuda a distinguir el analizador de MySQL entre llamadas a funciones y referencias a las tablas o columnas que resultan tener el mismo nombre que una función.

...

Se puede decir que el servidor MySQL aceptar espacios después de nombres de funciones por comenzando con la --sql-mode = IGNORE_SPACE.

Además, este comportamiento depende de la versión de MySQL, esto es por qué funciona en un servidor y no funciona en otro, cita de la " Nombre de la función de análisis y resolución de " página de manual:

El número de nombres de función afectada por IGNORE_SPACE se redujo significativamente en MySQL 5.1.13, desde aproximadamente 200 a aproximadamente 30.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top