Mi sono chiesto come verificare che un campo contenga un valore intero, senza dover ricorrere alle espressioni regolari o a strane procedure e senza dover usare linguaggi esterni per questa verifica.
Ed ecco la soluzione:
SELECT * FROM tabella WHERE concat('',colonnaINT * 1) = colonnaINT
In pratica verifico se il prodotto della colonnaINT moltiplicato per 1, corrisponde al valore colonnaINT.
È utile anche per verificare se una colonna contenga valori non interi (usando l’operatore !=).
Questo metodo dovrebbe funzionare nella maggior parte dei casi, fatta esclusione per valori esponenziali come 1e4 e 1.2e5.123.
Spero vi sia di aiuto 🙂
Commenti recenti