Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/02/2011, 10:07
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: Un rango utilizando LIKE

Hola Allan_mo:

No entiendo por qué dices que no te sirvió la expresión regular que te propone lair... tal cual debería funcionar:
Código MySQL:
Ver original
  1. mysql> #creamos una tabla de pruebas
  2. mysql> create table `pruebas`.`productos` (  `id_producto` int UNSIGNED NOT NULL
  3.  AUTO_INCREMENT , `nombre` varchar (50) NOT NULL , PRIMARY KEY (`id_producto`));
  4.  
  5. Query OK, 0 rows affected (0.06 sec)
  6.  
  7. mysql> #insertamos algunos valores de prueba
  8. mysql> insert into `productos`(`id_producto`,`nombre`) values (NULL, 'arroz'),(N
  9. ULL, 'bolsa'), (NULL,'carne'), (NULL,'dulces'), (NULL,'elotes');
  10. Query OK, 5 rows affected (0.03 sec)
  11. Records: 5  Duplicates: 0  Warnings: 0
  12.  
  13. mysql> #sin expresión regular
  14. mysql> select * from `pruebas`.`productos`;
  15. +-------------+--------+
  16. | id_producto | nombre |
  17. +-------------+--------+
  18. |           1 | arroz  |
  19. |           2 | bolsa  |
  20. |           3 | carne  |
  21. |           4 | dulces |
  22. |           5 | elotes |
  23. +-------------+--------+
  24. 5 rows in set (0.00 sec)
  25.  
  26. mysql> #con expresion regular
  27. mysql> select * from `pruebas`.`productos` where nombre REGEXP '^[a-c]';
  28. +-------------+--------+
  29. | id_producto | nombre |
  30. +-------------+--------+
  31. |           1 | arroz  |
  32. |           2 | bolsa  |
  33. |           3 | carne  |
  34. +-------------+--------+
  35. 3 rows in set (0.00 sec)
  36.  
  37. mysql>

La expresión regular sólo está considerando letras minúsculas, si tus productos vienen con mayúsculas debes incluirlas también en el rango.

La solución de jurena también debería de funcionar, pero igualmente considera sólo la aparición de minúsculas.

Saludos
Leo.