Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/04/2013, 12:25
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: REGEXP MySQL (acentos y ñ)

Hola xalupeao:

En realidad tienes muchas formas para hacer esto, puede ser tan sencillo como verificar que tu tabla tenga un COLLATION case insensitive (_ci) o hacer algunos pequeños ajustes... checa este script;

Código MySQL:
Ver original
  1. mysql>mysql> CREATE TABLE tabla(
  2.     ->   nombre VARCHAR(30),
  3.     ->   PRIMARY KEY (`id`)) CHARSET=latin1 COLLATE=latin1_spanish_ci;
  4. Query OK, 0 rows affected (0.08 sec)
  5.  
  6. mysql> INSERT INTO tabla VALUES
  7.     -> (1, 'Ñandú'), (2, 'Caimán'), (3, 'Mono'), (4, 'Chimpancé'), (5,'Nandú'),
  8.     -> (6, 'ñandu'), (7, 'Nandu'), (8, 'nandÚ'), (9, 'ñandù'), (10,'Ñandü');
  9. Query OK, 10 rows affected (0.02 sec)
  10. Records: 10  Duplicates: 0  Warnings: 0
  11.  
  12. mysql> SELECT * FROM tabla;
  13. +----+-----------+
  14. | id | nombre    |
  15. +----+-----------+
  16. |  1 | Ñandú       |
  17. |  2 | Caimán     |
  18. |  3 | Mono      |
  19. |  4 | Chimpancé  |
  20. |  5 | Nandú      |
  21. |  6 | ñandu      |
  22. |  7 | Nandu     |
  23. |  8 | nandÚ      |
  24. |  9 | ñandù       |
  25. | 10 | Ñandü       |
  26. +----+-----------+
  27. 10 rows in set (0.00 sec)

Observa que en la tabla incluí muchas variaciones de la palabra que buscas, con mayusculas, minusculas, acentos, diéresis y acentos gráves (`) observa cómo puedes hacer las consultas:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla WHERE nombre REGEXP '[N|n|Ñ|ñ]and[U|u|Ú|ú|Ü|ü|Ù|ù]';
  2. +----+--------+
  3. | id | nombre |
  4. +----+--------+
  5. |  1 | Ñandú    |
  6. |  5 | Nandú   |
  7. |  6 | ñandu   |
  8. |  7 | Nandu  |
  9. |  8 | nandÚ   |
  10. |  9 | ñandù    |
  11. | 10 | Ñandü    |
  12. +----+--------+
  13. 7 rows in set (0.00 sec)

Observa que entre los corchetes ([]) coloco todos los posibles valores para las palabras... te repito esta es una forma de hacerlo, pero no es la única.

Saludos
Leo.