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

Seleccionar aquéllo que empieza con un número...

Estas en el tema de Seleccionar aquéllo que empieza con un número... en el foro de Mysql en Foros del Web. Hola a todos. Tengo una bbdd, y una página PHP que selecciona datos de una tabla, según el carácter por el que empieza un campo. ...
  #1 (permalink)  
Antiguo 15/05/2006, 01:46
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 5 meses
Puntos: 1
Pregunta Seleccionar aquéllo que empieza con un número...

Hola a todos.

Tengo una bbdd, y una página PHP que selecciona datos de una tabla, según el carácter por el que empieza un campo. Dicho campo es de tipo TEXT.

Uso "SELECT * FROM tabla WHERE campo LIKE 'A%'"

para los que empiezan por 'A', y funciona. Funciona para cualquier letra, pero no para aquellos registros que comienzan por un número.

Uso "SELECT * FROM tabla WHERE campo LIKE '[0-9]%'"

pero no funciona. Sin embargo, si le pongo el número en cuestión (en lugar del intervalo [0-9]), sí que funciona.

¿sabéis qué hago mal?

Un saludo y gracias por adelantado!
  #2 (permalink)  
Antiguo 15/05/2006, 05:05
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Deberias utilizar REGEXP en lugar de LIKE:

SELECT * FROM tabla WHERE campo REGEXP '^[0-9]*'

Saludos.
  #3 (permalink)  
Antiguo 15/05/2006, 07:32
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 5 meses
Puntos: 1
Hola, Notwen

me funciona, pero con REGEXP '^[0-9]' (sin el *).

Por cierto, ¿qué hace exactamente esa consulta?

Gracias x tu ayuda!
  #4 (permalink)  
Antiguo 15/05/2006, 07:42
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Esa consulta utiliza una expresion regular (^[0-9]*) para ver si el valor del campo empieza con 0 o más dígitos del 0 al 9. En realidad quise poner + en lugar de *. El más es igual que el * excepto que indica 1 o más veces (con el * puede ser 0, es decir, va a tomar tambien los campos que no empiecen con números).
Si queres encontrar los campos que empiecen con sólo un dígito, entoces si es correcta tu consulta. Yo había entendido que podían comenzar con 1 o más dígitos (se nota que recién me levantaba )
Podés aprender más sobre expresiones regulares en el manual de mysql:

http://dev.mysql.com/doc/refman/4.1/en/regexp.html

Saludos.
  #5 (permalink)  
Antiguo 16/05/2006, 01:32
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 5 meses
Puntos: 1
Notwen RULES!!!!

Muchas gracias, amigo!
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 03:40.