Hola de nuevo Jordi45:
Lo que pretendes hacer, es imposible con las consultas SHOW COLUMNS, y cualquier otra que sea sobre el diccionario de datos de tu BD, porque estas consultas NO CONSIDERAN EL CONTENIDO, sino justamente los metadatos de las tablas y objetos.
Si entendí correctamente lo que quieres hacer, tendrías que construir un SELECT más o menos así:
Código MySQL:
Ver original+--------+--------+--------+
| campo1 | campo2 | campo3 |
+--------+--------+--------+
| uno | one | un |
| dos | dos | dos |
| tres | three | trois |
+--------+--------+--------+
-> (
+--------+
| campo |
+--------+
| campo1 |
+--------+
-> (
+--------+
| campo |
+--------+
| campo3 |
+--------+
Obviamente, este query no lo está creado de manera dinámica, quiere decir que si tu tabla cambia de estructura, pues entonces deberías cambiar también tu consulta... Los CASE-WHEN deberías hacerlos de manera exhaustiva, es decir, abarcando TODOS LOS CAMPOS QUE CONTENGA TU TABLA. observa también, que son CASE ANIDADOS, eso quiere decir que si por ejemplo, varias columnas tuvieran el mismo valor (como por ejemplo si buscaras el contenido
"dos"), el resultado será LA PRIMER COLUMNA que lo contenga:
Código MySQL:
Ver original -> (
+--------+
| campo |
+--------+
| campo1 |
+--------+
Dale un vistazo para ver si esto en más o menos lo que necesitas.
saludos
Leo.