Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/11/2012, 11:18
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Busqueda con like

Hola Diego_bolso93

Puedes probar con la función FIND_IN_SET, así;

Código MySQL:
Ver original
  1. mysql> select * from tabla;
  2. +------+-------------------+
  3. | id   | tag               |
  4. +------+-------------------+
  5. |    1 | Peru,al,inicio    |
  6. |    2 | Perugia,al,inicio |
  7. |    3 | en,Peru,medio     |
  8. |    4 | en,Perugia,medio  |
  9. |    5 | al,final,Peru     |
  10. |    6 | al,final,Perugia  |
  11. +------+-------------------+
  12. 6 rows in set (0.00 sec)
  13.  
  14. mysql> SELECT tag FROM tabla WHERE FIND_IN_SET('Peru', tag) > 0;
  15. +----------------+
  16. | tag            |
  17. +----------------+
  18. | Peru,al,inicio |
  19. | en,Peru,medio  |
  20. | al,final,Peru  |
  21. +----------------+
  22. 3 rows in set (0.00 sec)

La opción que propone Heimish2000 también podría funcionar, pero está incompleta, además las comparaciones tipo LIKE deben de evitarse en la medida de lo posible, pues tienen un rendimiento muy lento... completando la idea de utilizar LIKE sería así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla
  2.     -> WHERE
  3.     -> tag LIKE 'Peru,%' OR
  4.     -> tag LIKE '%,Peru,%' OR
  5.     -> tag LIKE '%Peru';
  6. +------+----------------+
  7. | id   | tag            |
  8. +------+----------------+
  9. |    1 | Peru,al,inicio |
  10. |    3 | en,Peru,medio  |
  11. |    5 | al,final,Peru  |
  12. +------+----------------+
  13. 3 rows in set (0.01 sec)

Pero insisto, no recomiendo para nada utilizar esta forma, pues es muy lenta... Haz la prueba y nos comentas.

Saludos
Leo.