Función IsNumeric para MySQL

Por el 18 de Diciembre de 2008

en: Sin categoría

Es un problema poco habitual ya que no siempre se pretende filtrar datos numéricos en las consultas de MySQL, pongamos que necesitamos probar en una consulta que los datos de un determinado campo son numéricos.

Buscando he encontrado dos posibles maneras de hacerlo con MySQL:

  • WHERE CONVERT(micampo, SIGNED INTEGER) IS NOT NULL
  • WHERE micampo REGEXP (‘[0-9]‘)

¿Cuál es la mejor maneras?

Tras probarlo definitivamente es mejor con expresiones regulares (la segunda opción) pero con una pequeña modificación para que nos coja cualquier número entero.

WHERE micampo REGEXP '^[0-9]+$'

  • Entradas relacionadas:
  • No hay coincidencias

2 Respuestas a Función IsNumeric para MySQL

Avatar

Cesarillo

27 de Febrero de 2009 a las 9:20 am

Acá les dejo como aporte la función ISNUMERIC en MySQL:

CREATE FUNCTION ISNUMERIC(myVal VARCHAR(1024))
RETURNS TINYINT(1) DETERMINISTIC
RETURN myVal REGEXP ‘^(-|\\+)?([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+|[0-9]+)$’;

Avatar

mysql@Locovich

16 de Diciembre de 2009 a las 10:28 pm

Habria esperado que sea una funcion del motor de mysql, y no tener que agregarla usando regexp, que suele tener un consumo alto de recursos.

Gracias por el aporte, me fue de utilidad!!!

Locovich

Dejar un comentario

Patrocinadores

¿Interesado en patrocinar TuFunción?

Suscripción

Primera División