Ver Mensaje Individual
  #10 (permalink)  
Antiguo 30/06/2011, 13:55
Avatar de gnzsoloyo
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, 2 meses
Puntos: 2658
Respuesta: Como hacer que el buscador no repita los registros

Veamosló en un ejemplo:
Código MySQL:
Ver original
  1. mysql> DROP TABLE IF EXISTS `test`.`tabla`;
  2. Query OK, 0 rows affected, 1 warning (0.02 sec)
  3.  
  4. mysql> CREATE TABLE  `test`.`tabla` (
  5.     ->   `campo1` varchar(100) default NULL,
  6.     ->   `campo2` varchar(100) default NULL
  7.     -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  8. Query OK, 0 rows affected (0.06 sec)
  9.  
  10. mysql> INSERT INTO tabla
  11.     -> VALUES
  12.     ->   ('Hola',''),
  13.     ->   ('Hola','¿Hola como estas?'),
  14.     ->   ('','¿Hola como estas?'),
  15.     ->   ('','¿Hola como estas?'),
  16.     ->   ('Hola',''),
  17.     ->   ('Hola',''),
  18.     ->   ('Hola','');
  19. Query OK, 7 rows affected (0.05 sec)
  20. Records: 7  Duplicates: 0  Warnings: 0
  21.  
  22. mysql> SELECT *
  23.     -> FROM tabla
  24.     -> WHERE campo1 LIKE '%Hola%';
  25. +--------+-------------------+
  26. | campo1 | campo2            |
  27. +--------+-------------------+
  28. | Hola   |                   |
  29. | Hola   | ¿Hola como estas? |
  30. | Hola   |                   |
  31. | Hola   |                   |
  32. | Hola   |                   |
  33. +--------+-------------------+
  34. 5 rows in set (0.00 sec)
  35.  
  36. mysql> SELECT *
  37.     -> FROM tabla
  38.     -> WHERE campo2 LIKE '%Hola%';
  39. +--------+-------------------+
  40. | campo1 | campo2            |
  41. +--------+-------------------+
  42. | Hola   | ¿Hola como estas? |
  43. |        | ¿Hola como estas? |
  44. |        | ¿Hola como estas? |
  45. +--------+-------------------+
  46. 3 rows in set (0.00 sec)
  47.  
  48. mysql> SELECT *
  49.     -> FROM tabla
  50.     -> WHERE campo1 LIKE '%Hola%'
  51.     -> UNION
  52.     -> SELECT *
  53.     -> FROM tabla
  54.     -> WHERE campo2 LIKE '%Hola%';
  55. +--------+-------------------+
  56. | campo1 | campo2            |
  57. +--------+-------------------+
  58. | Hola   |                   |
  59. | Hola   | ¿Hola como estas? |
  60. |        | ¿Hola como estas? |
  61. +--------+-------------------+
  62. 3 rows in set (0.00 sec)
¿Se entiende?
A pesar de os resultados de las consultas únicas, no hay en la última dos registros que estén repetidos. No al menos en el sentido estricto de repetir el registro completo, porque ese es el sentido del registro duplicado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)