Convertir le type de données BIGINT UNSIGNED INT

Je sais que c'est peu orthodoxe et potentiellement dangereux de vouloir les convertir en quelque chose d'une plus grande à une plus petite taille de type de données. Toutefois, dans ce cas, il est extrêmement peu probable que la valeur de la BIGINT UNSIGNED colonne est jamais plus grande que la taille maximale d'un INT colonne.

Ainsi, l'utilisation de MySQL, je suis en train de lire la structure de la table. Lors de la lecture de la information_schema.columns.ordinal_position colonne, j'ai réalisé qu'il est de type BIGINT UNSIGNED. Maintenant, je veux cela comme une INT la place pour mes fins de traitement. Je veux cast/convertir le type SQL.

CAST et CONVERT seulement me permettre de changer le signe du type de données, apparemment.

SELECT CAST(ordinal_position AS SIGNED)
FROM information_schema.columns

Je veux la colonne spécifiquement retourné comme un INT. E. g. hacher la colonne à la valeur maximale d'un INT et de renvoyer cette valeur.

Pour l'instant je vais juste changer le type de données après que j'ai tirer la valeur de retour. Mais j'aimerais savoir comment le faire en SQL.

OriginalL'auteur Josh M. | 2012-07-21