Supponiamo di avere un campo testuale che possa contenere valori "numerici" del tipo 01,02...10,11,... ed altri alfanumerici del tipo AA1, AA2....
Come possiamo verificare quelli numerici? Una soluzione può essere quella di sfruttare la funzione CAST con una espressione del tipo CAST(nome_colonna AS UNSIGNED).
Infatti
Mentre
Attenzione la soluzione proposta non funzionerà se la colonna può contenere valori del tipo 12AA perchè in questo caso:
CAST('12AA' AS UNSIGNED) fornirà come risultato il valore 12
Come possiamo verificare quelli numerici? Una soluzione può essere quella di sfruttare la funzione CAST con una espressione del tipo CAST(nome_colonna AS UNSIGNED).
Infatti
MariaDB > SELECT CAST('01' AS UNSIGNED);fornirà come risultato il valore 1 .
+------------------------+
| CAST('01' AS UNSIGNED) |
+------------------------+
| 1 |
+------------------------+
1 row in set (0.00 sec)
Mentre
MariaDB > SELECT CAST('AA1' AS UNSIGNED);fornirà il valore 0.
+------------------------+
| CAST('AA1' AS UNSIGNED)|
+------------------------+
| 0 |
+------------------------+
1 row in set (0.00 sec), 1 warning (0.00 sec)
Attenzione la soluzione proposta non funzionerà se la colonna può contenere valori del tipo 12AA perchè in questo caso:
CAST('12AA' AS UNSIGNED) fornirà come risultato il valore 12