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

Excluir campo (columna) en consulta

Estas en el tema de Excluir campo (columna) en consulta en el foro de Mysql en Foros del Web. Hola muchachos, nuevamente yo con mis preguntas, creo que es simple pero no he pillado nada al respecto. La pregunta es: ¿Cómo puedo seleccionar los ...
  #1 (permalink)  
Antiguo 11/10/2010, 13:33
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Excluir campo (columna) en consulta

Hola muchachos, nuevamente yo con mis preguntas, creo que es simple pero no he pillado nada al respecto. La pregunta es:

¿Cómo puedo seleccionar los registros de todos los campos de una consulta SQL excluyendo uno?

Ejemplo, sea la tabla:
USUARIOS (
user varchar(),
pass varchar
email varchar
nick varchar
)

En mi caso quiero mostrar todos los campos excepto el que se llama 'nick'. Inventando una sentencia sería algo así como: SELECT (* - nick) FROM usuarios;

Es posible hacer esto sin tener que especificar manualmente esto?:
SELECT user, pass, email FROM usuarios;

Ya que para hacer esto lo hago desde un método en PHP donde paso como parámetro la tabla, en donde todas tienen distintos campos excepto un campo llamado 'id' que todas tienen en común, que es justo el campo que quiero excluir (el campo 'id').

Espero su ayuda, muchas gracias :)

Nota: En mis tablas reales el 'id' es auto_increment, por lo tanto, clave primaria.

Última edición por de-troit; 11/10/2010 a las 14:13
  #2 (permalink)  
Antiguo 11/10/2010, 14:35
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Excluir campo (columna) en consulta

Saludos

mmmm podrias consultar las columnas de una tabla excluyendo la que no necesitas algo asi como

Código MySQL:
Ver original
  1. SELECT column_name FROM information_schema.COLUMNS WHERE table_name='tabla' AND column_name NOT IN ('id');

Luego las columnas retornadas las manipulas en la otra sentencia algo asi se me ocurre ...
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 11/10/2010, 14:52
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Excluir campo (columna) en consulta

=/, no me sirve, ya que necesito hacer consultas a la misma base de datos siempre. De todas maneras, muchas gracias ;)
  #4 (permalink)  
Antiguo 11/10/2010, 15:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Excluir campo (columna) en consulta

de-troit,
creo que es un problema que resolverás mejor en PHP, aunque la idea de nano es también buena. Si ya tienes una función que al poner el nombre de la tabla de las tuyas te permite obtener los nombres de todos los campos (en PHP existe una función para ello), no te resultará difícil sacar el id de las obtenidos para hacer la consulta y luego mostrarlos todos menos ese id. En MySQL no existe esa opción de todos menos el que sea. La propuesta de nano es que mediante una consulta al information_schema obtengas ya los nombres de todos los campos de esa tabla menos id. Es un buen modo de hacerlo; otro sería en PHP, cargando los nombres en un array y luego descartando el id para hacer la consulta y mostrar los datos. Es lo que se me ocurre.
  #5 (permalink)  
Antiguo 11/10/2010, 15:11
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Excluir campo (columna) en consulta

Jurena, pensé exactamente lo mismo, lo más curioso de mi situación es que quise "obtener" el array y construirlo de nuevo accediendo por el índice, pero la función no me funciona, de hecho, trato de mostrarla con: echo $array[$i] dentro de un for y tampoco la muestra, pero si retorno $array y lo muestro desde un javascript (paso el array de php a js) y accedo de la forma array[i] si funciona :S. No sé si poner esa parte de código aquí ya que correspondería al foro PHP.

Tambien se me ocurrio obtener el número de campos con mysql_num_fields y obtener el nombre de los campos con mysql_field_name() (ya que necesito trabajar sobre la misma BD siempre), y así trabajar el array hasta sacarle el id, pero tengo el problema en la función que te comenté hace poco :(

Saludos!

EDIT: Aquí expuse el problema > http://www.forosdelweb.com/f68/funci...7/#post3593309

Gracias!

Última edición por de-troit; 11/10/2010 a las 15:37
  #6 (permalink)  
Antiguo 11/10/2010, 15:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Excluir campo (columna) en consulta

Creo que debes pedir ayuda en el foro PHP, y mostrar la función que estás usando. Yo probé en tiempos con mysql_field_name() y pude cargar los campos y quitar uno. Yo siempre actuaba con PHP, por lo que no sé qué ocurre con el javascript. Pide ayuda en el foro PHP. Seguro que eso se ha hecho antes y alguien te pasa el código.
una aclaración final:
en el manual de PHP tienes un ejemplo de carga de nombres de campos en un array
http://php.net/manual/es/function.mysql-field-name.php
Si, como sospecho, el id es el primer campo, te bastará evitar en la iteración el primer elemento del array. Pero pregunta en el foro PHP.

Última edición por jurena; 11/10/2010 a las 15:45
  #7 (permalink)  
Antiguo 11/10/2010, 16:08
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Excluir campo (columna) en consulta

Solucioné el problema del código en PHP, así que trabajaré el array retornado por la consulta para excluír el campo ID y no haciéndolo directamente en la consulta.

Muchas gracias a todos los que aportaron. Saludos!

Etiquetas: columna, excluir, campos
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 13:40.