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 PMEstoy 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]+$'