not - Concat una cadena para SELECCIONAR*MySql
mysql concat_ws example (4)
No puede concatenar múltiples campos con una cadena. Debe seleccionar un campo instand de todos ( *
).
La siguiente consulta funciona bien con MySQL:
SELECT concat(title,''/'') FROM `socials` WHERE 1
Se concat / al campo del título seleccionado.
Sin embargo, cuando intento hacer lo siguiente:
SELECT concat(*,''/'') FROM `socials` WHERE 1
Devuelve el siguiente error:
#1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near ''*,''/'') FROM `socials` WHERE 1 LIMIT 0, 30'' at line 1
Entonces, ¿hay alguna manera de hacer que dicha consulta SQL funcione con MySql?
No puedes hacer esto en múltiples campos. También puedes buscar this .
Si desea concatenar los campos utilizando / como separador, puede usar concat_ws
:
select concat_ws(''/'', col1, col2, col3) from mytable
Sin embargo, no puede escapar listando las columnas en la consulta. El * -syntax solo funciona en "seleccionar * de". Puede enumerar las columnas y construir la consulta dinámicamente sin embargo.
Simplemente no puedes hacer eso en SQL. Tienes que listar explícitamente los campos y concat cada uno:
SELECT CONCAT(field1, ''/''), CONCAT(field2, ''/''), ... FROM `socials` WHERE 1
Si está utilizando una aplicación, puede usar SQL para leer los nombres de las columnas, y luego usar su aplicación para construir una consulta como la anterior. Vea esta pregunta de para encontrar los nombres de columna: ¿ Obtener nombres de columna de tabla en mysql?