only not group_concat example concat_ws mysql sql string concat

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?