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

En busca de una función

Estas en el tema de En busca de una función en el foro de Mysql en Foros del Web. Hola a todos, Existe alguna función que de un CHAR obtenga solo numeros ? Por ejemplo: 'hola12doce'=>12 '13holatrece'=>13 No tengo el caso de que tenga ...
  #1 (permalink)  
Antiguo 21/09/2009, 01:09
 
Fecha de Ingreso: junio-2009
Mensajes: 174
Antigüedad: 14 años, 10 meses
Puntos: 0
En busca de una función

Hola a todos,
Existe alguna función que de un CHAR obtenga solo numeros ?
Por ejemplo:
'hola12doce'=>12
'13holatrece'=>13
No tengo el caso de que tenga '13hola23'.
Si no lo hay, alguién me puede facilitar algúna función que me diga en ese puesto si hay un número o caracter ?
Gracias.
  #2 (permalink)  
Antiguo 21/09/2009, 02:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: En busca de una función

No nos has dicho todo. ¿Utilizas signos de puntuación o algún otro signo?
Puedes hacerlo con programación, pero también puedes hacerlo desde la base. Lo primero es la seguridad, crea un campo nuevo también VARCHAR y haz lo siguiente:
con esto conviertes todos los caracteres en minúscula
UPDATE tabla set camponuevo = lower(campoantiguo);

luego haces varios replace
UPDATE tabla SET camponuevo = REPLACE(campoviejo, 'a','');
UPDATE tabla SET camponuevo = REPLACE(campoviejo, 'b','');
UPDATE tabla SET camponuevo = REPLACE(campoviejo, 'c','');
... //todas las letras del abecedario y los caracteres no numéricos que hayas usado en ese campo

También podrías hacerlo en una sola consulta de actualización...
UPDATE tabla SET camponuevo = REPLACE(REPLACE(REPLACE(campoviejo, 'a',''),'b',''),'c','')

y así con todos los caracteres, excepto los números, claro.

Finalmente, cuando todos sean números, cambias la naturaleza de ese campo a INT(11). Una vez comprobado que todo está bien, puedes eliminar el campoviejo.

Ya sé que es un poco mecánico, pero también tienes la opción de hacerlo con programación
  #3 (permalink)  
Antiguo 21/09/2009, 05:10
 
Fecha de Ingreso: junio-2009
Mensajes: 174
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: En busca de una función

Gracias jurena, no está nada mal planteado tu respuesta pero intentaré conseguir escribiendo menos código.
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:40.