Saltar al contenido

¿Cómo verifico si un valor es un número entero en MySQL?

Solución:

Asumiré que desea verificar un valor de cadena. Una buena forma es el operador REGEXP, que hace coincidir la cadena con una expresión regular. Simplemente haz

select field from table where field REGEXP '^-?[0-9]+$';

esto es razonablemente rápido. Si su campo es numérico, simplemente pruebe

ceil(field) = field

en lugar de.

Coincidirlo con una expresión regular.

cf http://forums.mysql.com/read.php?60,1907,38488#msg-38488 como se cita a continuación:

Re: cláusula IsNumeric () en MySQL?

Publicado por: kevinclark ()

Fecha: 08 de agosto de 2005 01:01 PM

Estoy de acuerdo. Aquí hay una función que creé para MySQL 5:

CREATE FUNCTION IsNumeric (sIn varchar(1024)) RETURNS tinyint
RETURN sIn REGEXP '^(-|\+){0,1}([0-9]+\.[0-9]*|[0-9]*\.[0-9]+|[0-9]+)$';

Esto permite un signo más / menos opcional al principio, un punto decimal opcional y el resto de dígitos numéricos.

Supongamos que tenemos una columna con un campo alfanumérico que tiene entradas como

a41q
1458
xwe8
1475
asde
9582
.
.
.
.
.
qe84

y desea el valor numérico más alto de esta columna db (en este caso es 9582), esta consulta lo ayudará

SELECT Max(column_name) from table_name where column_name REGEXP '^[0-9]+$'
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *