Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Saber nombre del campo donde ha sido encontrado el valor

Estas en el tema de Saber nombre del campo donde ha sido encontrado el valor en el foro de Mysql en Foros del Web. Quiero saber si un valor se encuentra en una tabla a traves de SELECT, este valor puede estar en tres campos diferentes, en caso de ...
  #1 (permalink)  
Antiguo 15/10/2014, 05:46
 
Fecha de Ingreso: junio-2009
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Saber nombre del campo donde ha sido encontrado el valor

Quiero saber si un valor se encuentra en una tabla a traves de SELECT, este valor puede estar en tres campos diferentes, en caso de que se encuentre, quiero saber el nombre del campo donde ha sido encontrado el valor.
  #2 (permalink)  
Antiguo 15/10/2014, 05:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Saber nombre del campo donde ha sido encontrado el valor

No hay en SQL una cláusula automágica que te devuelva eso. Para saber dónde encuentra un valor dado entre una serie de campos donde se lo comparó en el WHERE, deberás crear una consulta compleja, concondiciones tales que fuerces a que te devuelva una columna virtual, en donde especifique tal condición.
Postea la consulta que haces, y veremos cómo solucionarlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/10/2014, 05:57
 
Fecha de Ingreso: junio-2009
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Saber nombre del campo donde ha sido encontrado el valor

Esta es la consulta que hago.
Código MySQL:
Ver original
  1. SELECT * FROM name_table
  2. WHERE Pais='$name_lugar' OR Provincia='$name_lugar' OR Lugar='$name_lugar'

Última edición por gnzsoloyo; 15/10/2014 a las 06:32
  #4 (permalink)  
Antiguo 15/10/2014, 06:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Saber nombre del campo donde ha sido encontrado el valor

Los "SELECT * " no sirven para eso (además de ser una espantosa forma de consulta). Necestas invocar los campos uno a unho, para poder crear una columna adicional que pueda ser interpretada como resultado.
Una posibilidad es:
.
Código MySQL:
Ver original
  1.     T.*,
  2.     IF(Pais='$name_lugar', 'Pais',  IF(Provincia='$name_lugar', 'Provincia', 'Lugar')) Encontrado_En
  3. FROM name_table T
  4. WHERE Pais='$name_lugar' OR Provincia='$name_lugar' OR Lugar='$name_lugar'
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/10/2014, 06:45
 
Fecha de Ingreso: junio-2009
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Saber nombre del campo donde ha sido encontrado el valor

Gracias por la respuesta, intentaré implementarla. Decir también que yo tengo "SELECT *" por que entre otras cosas necesito los valores de todos los campos de las filas seleccionadas.
Si se complica mucho la consulta intentaré hacerla en varias.
  #6 (permalink)  
Antiguo 15/10/2014, 06:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Saber nombre del campo donde ha sido encontrado el valor

¿Todos? ¿Absolutamente TODOS y cada uno de los campos son usados inmediatamente luego de la consulta?
Si al menos UNO de los campos no se usa, te conviene invocar los campos uno a uno.

Por cierto, la consulta que te propongo no se "complicaría" a menos que no me estés dando toda la información... Lo que planteas es simple hasta el límite.
Si la query real no es ESA, entonces no podremos garantizarte respuestas que te sirvan.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, encontrado, nombre, select, tabla, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:18.