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

Como hacer que no se repita un valor encontrado

Estas en el tema de Como hacer que no se repita un valor encontrado en el foro de Mysql en Foros del Web. Hola tengo la siguiente consulta $consulta = mysql_query("SELECT primer_nombre FROM aq_usuarios WHERE primer_nombre LIKE '%$texto%' OR segundo_nombre LIKE '%$texto%' GROUP BY primer_nombre LIMIT 5"); Supongamos ...
  #1 (permalink)  
Antiguo 27/07/2012, 13:58
 
Fecha de Ingreso: julio-2008
Mensajes: 83
Antigüedad: 15 años, 9 meses
Puntos: 1
Como hacer que no se repita un valor encontrado

Hola tengo la siguiente consulta

$consulta = mysql_query("SELECT primer_nombre FROM aq_usuarios WHERE primer_nombre LIKE '%$texto%' OR segundo_nombre LIKE '%$texto%' GROUP BY primer_nombre LIMIT 5");

Supongamos que tenga los siguientes registros...

Código PHP:
ID primer_nombre segundo_nombre
 1 
miguel              Jose
 2 
marta               maria
 3 
Esteban           miguel
 4 
maria               sara 
Como puedo hacer para que cuando $texto = 'm'; me arroje el siguiente resultado:

miguel, maria, marta

Y no me arroje lo que me esta arrojando:

miguel, marta, maria, miguel, maria

¿Como puedo evitar los duplicados?

Nota: necesariamente quiero que la consulta busque en ambos campos (primer_nombre, segundo_nombre), pero que no repita una similar si ya fue encontrado anteriormente...

gracias de antemano...
  #2 (permalink)  
Antiguo 27/07/2012, 14:35
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Como hacer que no se repita un valor encontrado

Hola raptaparty:

A ver, acláranos algunas cosas, de entrada, con los datos que pones de ejemplo, si ejecutas la consulta que estás poniendo no te regresa:

Código:
miguel, marta, maria, miguel, maria
Aquí está la prueba:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM aq_usuarios;
  2. +------+---------------+----------------+
  3. | id   | primer_nombre | segundo_nombre |
  4. +------+---------------+----------------+
  5. |    1 | miguel        | Jose           |
  6. |    2 | marta         | maria          |
  7. |    3 | Esteban       | miguel         |
  8. |    4 | maria         | sara           |
  9. +------+---------------+----------------+
  10. 4 rows in set (0.02 sec)
  11.  
  12. mysql> SELECT primer_nombre FROM aq_usuarios
  13.     -> WHERE primer_nombre LIKE '%m%' OR
  14.     -> segundo_nombre LIKE '%m%'
  15.     -> GROUP BY primer_nombre LIMIT 5;
  16. +---------------+
  17. | primer_nombre |
  18. +---------------+
  19. | Esteban       |
  20. | maria         |
  21. | marta         |
  22. | miguel        |
  23. +---------------+
  24. 4 rows in set (0.00 sec)

Esto no se parece muy poco a lo que dices que te regresa... o una de dos, de equivocaste con la consulta que posteaste o algo le falta...

Ahora bien, según lo que describiste en tu problema, igual y esto te puede servir:

Código MySQL:
Ver original
  1. mysql> SELECT nombre FROM
  2.     -> (SELECT primer_nombre nombre FROM aq_usuarios
  3.     -> UNION
  4.     -> SELECT segundo_nombre nombre FROM aq_usuarios) T
  5.     -> WHERE nombre LIKE '%m%';
  6. +--------+
  7. | nombre |
  8. +--------+
  9. | miguel |
  10. | marta  |
  11. | maria  |
  12. +--------+
  13. 3 rows in set (0.00 sec)

Dale un vistazo para ver si te sirve, y si continuas con problemas trata de explicar mejor qué es lo que necesitas obtener como resultado.

Saludos
Leo.

Etiquetas: Ninguno
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 02:29.