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

Mostrar de A-H ?

Estas en el tema de Mostrar de A-H ? en el foro de Mysql en Foros del Web. Veran estoy realizando un aplicacion en la cual se mostraran Nombres lo que quiero es mostrar los nombres por rango por ejemplo. Nombre que inician ...
  #1 (permalink)  
Antiguo 02/01/2007, 10:16
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 3 meses
Puntos: 6
Pregunta Mostrar de A-H ?

Veran estoy realizando un aplicacion en la cual se mostraran Nombres
lo que quiero es mostrar los nombres por rango por ejemplo.
Nombre que inician de la A a la D, en otra pagina de la E a H, etc
pero realmente no se como hacerlo.

un intento que hice y que fallo por supuesto:
SELECT * FROM alumnos WHERE nombre LIKE '^[a-d]%' ORDER BY nombre ASC

ALGO DE AYUDA POR FAVOR
  #2 (permalink)  
Antiguo 02/01/2007, 10:23
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Mostrar de A-H ?

Código:
SELECT * FROM alumnos where nombre LIKE '[A-D]*' ORDER BY nombre ASC
Pruébalo.
  #3 (permalink)  
Antiguo 02/01/2007, 16:46
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 3 meses
Puntos: 6
Re: Mostrar de A-H ?

david, gracias por contestar.
probe tu codigo pero sigue igual, sigue sin mostrar nada

SELECT * FROM alumnos WHERE nombre LIKE '[A-H]*' ORDER BY nombre ASC

  #4 (permalink)  
Antiguo 02/01/2007, 19:36
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Mostrar de A-H ?

Intenta esto:

Código PHP:
SELECT FROM alumnos
WHERE ASCII
(UPPER(SUBSTR(nombre11))) > (ASCII('A')-1) AND
ASCII(UPPER(SUBSTR(nombre11))) < (ASCII('H')+1ORDER BY UPPER(nombre); 
Explicación de las funciones:
SUBSTR(nombre,1,1) = Obtiene el primer caracter de nombre, supongamos que el primer nombre es Amanda. La letra obtenida es 'A'.
UPPER(resultado de SUBSTR, o sea, 'A') = Lo que hace es poner en mayúscula ese resultado, suponiendo que en ves de Amanda, escribieron amanda, la letra obtenida sería 'a', pero con UPPER, la convierte a 'A'.
ASCII(resultado de UPPER) = En este caso, se convierte el resultado a un valor númerico para su evaluación. El valor ASCII de A es 65.

Ese valor, se compara con uno menor a A, o sea, 64. Ese es el valor de ASCII('A')-1.

Para finalizar, se indica que el rango a evaluar va a ser hasta la H, o sea, el valor ASCII('H') = 72. Pero como se debe incluir hasta la H, se debe sumar uno a la sentencia ASCII('H'), o sea, 73.

El hecho de convertir la primera letra en mayúscula, en caso que sea minúscula, es para evitar otro rango de la 'a' a la 'h', ya que sus valores ASCII son diferentes: a=97 y h=104. De esa forma, se evalúan las mayúsculas y minúsculas.

Tomando los resultados del ejemplo, se obtendría:
Código PHP:
SELECT FROM alumnos
WHERE 64 
63 AND
72 73 ORDER BY UPPER(nombre); 
Espero que te funcione.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL

Última edición por BrujoNic; 02/01/2007 a las 19:45
  #5 (permalink)  
Antiguo 02/01/2007, 22:58
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 3 meses
Puntos: 6
Re: Mostrar de A-H ?

Muchas gracias Brujo, ejecute tu consulta pero me retorna esta error

MySQL ha dicho:


You have an error in your SQL syntax near '(nombre, 1, 1))) > (ASCII('A')-1) AND
ASCII(UPPER(SUBSTR(nombre, 1, 1))) < (ASC' at line 2

pero por lo que veo tu sintanxis es correcta.
  #6 (permalink)  
Antiguo 03/01/2007, 04:05
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: Mostrar de A-H ?

No se pero no será que estais usando LIKE en luegar de RLIKE para una expresión regular

Código:
SELECT * FROM alumnos where nombre RLIKE '^[a-d]' ORDER BY nombre ASC
Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
  #7 (permalink)  
Antiguo 03/01/2007, 10:52
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Mostrar de A-H ?

Disculpa, creí que SUBSTRING y SUBSTR darían lo mismo pero no, cambia SUBSTR por SUBSTRING, ya hice pruebas y funciona
Código PHP:
SELECT FROM alumnos
WHERE ASCII
(UPPER(SUBSTRING(nombre11))) > (ASCII('A')-1) AND
ASCII(UPPER(SUBSTRING(nombre11))) < (ASCII('H')+1ORDER BY UPPER(nombre
La solución de Lord of freaks también funciona y es más corta.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #8 (permalink)  
Antiguo 03/01/2007, 17:03
 
Fecha de Ingreso: enero-2004
Mensajes: 431
Antigüedad: 20 años, 3 meses
Puntos: 6
Re: Mostrar de A-H ?

muchiiiiiiiisimas gracias!! las 2 funcionan de maravilla.

Ya habia visto el RLIKE pero realmente nunca me acorde de el .

GRACIAS A TODOS
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 14:58.