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

como hago un WHERE numerico

Estas en el tema de como hago un WHERE numerico en el foro de Bases de Datos General en Foros del Web. Ya se que nadie entiende nada, pero... quiero hacer esto hacer un select de un tabla y como condicion un where en un campo varchar ...
  #1 (permalink)  
Antiguo 16/09/2003, 11:28
NHS
 
Fecha de Ingreso: junio-2002
Ubicación: Todos lados
Mensajes: 92
Antigüedad: 21 años, 10 meses
Puntos: 0
como hago un WHERE numerico

Ya se que nadie entiende nada, pero... quiero hacer esto

hacer un select de un tabla y como condicion un where en un campo varchar y que me de resultado los que en el campo X tiene valores numericos.

ejemplo grafico

id(int,auto) campoX
1 hola
2 5456
3 como estas
4 56958

y que con el select me de por resultado los registros donde campoX tiene valor numerico osea el 2 y 4
gracias
  #2 (permalink)  
Antiguo 16/09/2003, 13:01
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
Que raro pero yo si COMPRENDO y te apuesto que muchos aquí también. Además, el select que queres hacer SI se puede hacer y NO es complicado dependiendo de la BD que estes usando y las funciones que soporte.... Ejemplo en MySQL:

SELECT campoX FROM tabla
WHERE LCASE(campoX) = UCASE(campoX)

LCASE es para convertir a minúscula y UCASE a mayúscula. Si al convertir a mayúscula y minúscula el resultado es igual, hay un porcentaje muy alto de que sea un número.

Buscate a ver una función que convierta a valor entero y si el resultado de la conversión es mayor a cero, es un número. Posibilidades hay muchas.
__________________
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
  #3 (permalink)  
Antiguo 16/09/2003, 15:38
NHS
 
Fecha de Ingreso: junio-2002
Ubicación: Todos lados
Mensajes: 92
Antigüedad: 21 años, 10 meses
Puntos: 0
mira acabo de probar y no me funciono, acordate que campox es varchar
  #4 (permalink)  
Antiguo 16/09/2003, 16:04
 
Fecha de Ingreso: julio-2002
Mensajes: 322
Antigüedad: 21 años, 9 meses
Puntos: 0
Buen trucazo este: LCASE(campoX) = UCASE(campoX) no se me habia ocurrido
__________________
Saludos

Rubén
Teléfonos móviles, curiosidades: http://telefonos-moviles.muchodenada.com/
  #5 (permalink)  
Antiguo 17/09/2003, 00:57
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Si estás usando mysql, la solución es sencilla:

where campo regexp "[0-9]+"

o también

where campo regexp "[[:digit:]]+"

Si utilizas otro gestor, tendrás que buscar algo equivalente.
  #6 (permalink)  
Antiguo 17/09/2003, 01:47
 
Fecha de Ingreso: julio-2002
Mensajes: 322
Antigüedad: 21 años, 9 meses
Puntos: 0
Sin duda este es mejor aun
__________________
Saludos

Rubén
Teléfonos móviles, curiosidades: http://telefonos-moviles.muchodenada.com/
  #7 (permalink)  
Antiguo 17/09/2003, 09:41
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
Tenes razón NHS, lo que te puse no funciona por lo que hice una tabla (siempre en MySQL porque no especificas la BD) y modifique un poco el SELECT que te puse e intente el de Vice, el cual funciona muy bien y considero más eficiente.

SELECT campoX
FROM `prueba` WHERE ASCII(LCASE(campoX)) = ASCII(UCASE(campoX))

SELECT campoX
FROM `prueba` WHERE campox regexp "[0-9]+"

Editado
Edito el mensaje sin cambiar lo de arriba ya que quede con una duda al probar los select pero mezclando número y letras (1235ab) y la solución mia no funciona y la de Vince si pero haciendo algunos cambios quedando así:

SELECT campoX
FROM `prueba` WHERE campox NOT regexp "[a-z, A-Z, ñ, Ñ, á, é, í, ó, ú]"

La aclaración va en que a como estaba antes, buscaba que existiera en cualquier parte del campo VARCHAR un número lo que se cumpliría si el contenido tiene números y letras. En esta modificación, si encuentra cualquier letra mayúscula, minúscula o caracteres con acento o tilde y las ñ, se cumpliría pero como lo estoy NEGANDO, no tomaría en cuenta esos registros.

El rango lo podes ampliar de acuerdo a tus necesidades.
__________________
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; 17/09/2003 a las 10:05
  #8 (permalink)  
Antiguo 18/09/2003, 05:45
NHS
 
Fecha de Ingreso: junio-2002
Ubicación: Todos lados
Mensajes: 92
Antigüedad: 21 años, 10 meses
Puntos: 0
Gracias a todos!!! y si uso mysql
me han salvado

Gracias Totales!!!
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 20:58.