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

Mostrar solo 1 resultado si hay 2 similares

Estas en el tema de Mostrar solo 1 resultado si hay 2 similares en el foro de Mysql en Foros del Web. ¡Hola comunidad del foro! Tengo una pregunta, no estoy seguro como buscarla en el foro por eso lo pongo aquí, se los explico. Tengo una ...
  #1 (permalink)  
Antiguo 02/01/2014, 14:23
Avatar de cell001  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 5
Mostrar solo 1 resultado si hay 2 similares

¡Hola comunidad del foro!

Tengo una pregunta, no estoy seguro como buscarla en el foro por eso lo pongo aquí, se los explico.

Tengo una tabla similar a esta;

nombre de tabla: computacion

TIPO | NOMBRE
-------------------------------
Software | EXCEL
Software | ACCESS
Software | EXCEL
Software | ACCESS
Software | WORD
Software | EXCEL
Software | P_POINT
Software | EXCEL

mi pregunta es ¿Cómo puedo hacerle para que si quiero mostrar el campo NOMBRE, me muestre solamente los campos sin repetir de manera que como resultado en una variable salga solo EXCEL, ACCESS, WORD, P_POINT ?

no se como hacer eso, estoy hasta ahora solo en..
Código MySQL:
Ver original
  1. SELECT * FROM computacion -AQUI LO QUE VAYA- WHERE tipo='Software'

¡Saludos a todos!

Última edición por gnzsoloyo; 02/01/2014 a las 14:26 Razón: error de dedo
  #2 (permalink)  
Antiguo 02/01/2014, 14:28
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Mostrar solo 1 resultado si hay 2 similares

Bueno en este caso creo que se podría aplicar DISTINCT

Código MySQL:
Ver original
  1. SELECT DISTINCT(NOMBRE), computacion.* FROM computacion WHERE tipo='Software'

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 02/01/2014, 15:25
Avatar de cell001  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 5
Respuesta: Mostrar solo 1 resultado si hay 2 similares

amigo jonni09lo, eres un genio!

Gracias por la solución, es exactamente lo que buscaba!

Que tenga excelente inicio de año

Saludos
  #4 (permalink)  
Antiguo 02/01/2014, 15:32
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Mostrar solo 1 resultado si hay 2 similares

De nada, me alegra que te haya servido

Como adicional en algunos casos no podría funcionarte apropiadamente DISTINCT, así que puedes usar GROUP BY

Código MySQL:
Ver original
  1. SELECT * FROM computacion WHERE tipo='Software' GROUP BY NOMBRE

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 02/01/2014, 16:09
Avatar de cell001  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 5
Respuesta: Mostrar solo 1 resultado si hay 2 similares

gracias por la aclaración, parece ser que me funciona muy bien el primero pero a que te refieres con "en algunos casos"?

numeros, por acentos? o mas bien por esas ocasiones en que por capricho del server simplemente no?
  #6 (permalink)  
Antiguo 02/01/2014, 16:25
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Mostrar solo 1 resultado si hay 2 similares

Sé que DISTINCT tiene una limitación y creo que es esta:

Si tienes esto:

TIPO | NOMBRE | OTROCAMPO
-------------------------------
Software | EXCEL | 1
Software | ACCESS | 2
Software | EXCEL | 1
Software | ACCESS | 2
Software | WORD | 1
Software | EXCEL | 2
Software | P_POINT | 1
Software | EXCEL | 2

Y ejecutas la consulta con DISTINCT

Te devolverá algo como esto:

TIPO | NOMBRE | OTROCAMPO
--------------------------
Software | EXCEL | 1
Software | ACCESS | 2
Software | WORD | 1
Software | EXCEL | 2
Software | P_POINT | 1

Como ves repite EXCEL ya que OTROCAMPO es diferente, así que DISTINCT no solo aplica a la columna si no que aplica a toda la fila.

En cambio si usas GROUP BY tendrás algo como esto:

TIPO | NOMBRE | OTROCAMPO
--------------------------
Software | ACCESS | 2
Software | WORD | 1
Software | EXCEL | 1
Software | P_POINT | 1

Cuyo caso es el resultado que deseamos

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #7 (permalink)  
Antiguo 03/01/2014, 14:37
Avatar de cell001  
Fecha de Ingreso: abril-2010
Mensajes: 40
Antigüedad: 14 años
Puntos: 5
Respuesta: Mostrar solo 1 resultado si hay 2 similares

ya veo, checaré esa otra forma también, muchas gracias nuevamente!

Etiquetas: campo, resultado, select, similares, sql, tabla
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 14:43.