inner - mysql concat rows with comma
SQL CONCAT-Personajes divertidos-pero no me estoy riendo (3)
Estoy usando esta consulta para crear un menú de archivo de blog, como por ejemplo:
SELECT CONCAT( MONTHNAME(published) , '' '' , YEAR(published)) AS monthyear,
COUNT(*) AS total
FROM blog_articles
WHERE status = ''Online'' AND Year(published) = 2012
GROUP BY CONCAT( MONTHNAME(published) , '' '' , YEAR(published))
Resultado Esperado:
January 2012 103
February 2012 87
March 2012 23
April 2012 99
Resultado actual:
El conteo es correcto pero en lugar del mental oriental, debería leer:
May 2012 1
¿Cómo puedo deshacerme de los personajes divertidos y tener inglés en su lugar?
Cuando ejecuto esta consulta en phpMyAdmin, los caracteres están bien.
ACTUALIZAR
Acabo de intentar ejecutar conn.Execute ("SET lc_time_names = ''en_US'';") y no resolví el problema. Para comprobarlo, utilicé conn.Execute ("SELECT @@ lc_time_names;") y devolvió "en_US".
Otra actualización
Al buscar en los foros de MySQL problemas relacionados, encontré a otro tipo quejándose del mismo problema. Un gurú de MySQL dijo:
"Este es el servidor famoso (infame) que devuelve tipos incorrectos para CONCAT de un número y una cadena. Uno tiene que usar el formulario (emitido) para que esto funcione, el controlador no puede decir cuál es el tipo real".
No estoy seguro de qué es el reparto o cómo solucionar este problema.
Cambie su ubicación a inglés entonces. Lo siguiente también es SQL.
SET lc_time_names = ''en_US'';
Parece que tienes un conjunto lc_time_names "divertido".
Tratar:
SET lc_time_names = ''en_US'';
antes de ejecutar la consulta.
Servidor tonto, las matemáticas son para los números.
CAST()
CAST (enum_col AS CHAR): emite un valor como un tipo determinado
SELECT CONCAT( CAST(MONTHNAME(published) as char) , '' '' , CAST(YEAR(published)) as char) AS monthyear,
COUNT(*) AS total
FROM blog_articles
WHERE status = ''Online'' AND Year(published) = 2012
GROUP BY CONCAT( MONTHNAME(published) , '' '' , YEAR(published))
DATE_FORMAT()
También puede probar la función DATE_FORMAT (AÑO (publicado), ''% Y'') en lugar de CAST.