Mes données actuelles pour
SELECT PROD_CODE FROM `PRODUCT`
est
PROD_CODE
2
5
7
8
22
10
9
11
J'ai essayé toutes les quatre requêtes et aucune ne fonctionne. ( Ref )
SELECT CAST(PROD_CODE) AS INT FROM PRODUCT;
SELECT CAST(PROD_CODE AS INT) FROM PRODUCT;
SELECT CAST(PROD_CODE) AS INTEGER FROM PRODUCT;
SELECT CAST(PROD_CODE AS INTEGER) FROM PRODUCT;
Toutes les erreurs de syntaxe telles que ci-dessous:
Vous avez une erreur dans votre syntaxe SQL; Consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser avec ') AS INT DE PRODUCT LIMIT 0, 30' à la ligne 1.
Vous avez une erreur dans votre syntaxe SQL; Consultez le manuel correspondant à la version de votre serveur MySQL pour connaître la syntaxe à utiliser près de 'INTEGER) FROM PROD LIMIT 0, 30' à la ligne 1.
Quelle est la bonne syntaxe pour convertir varchar en entier dans MySQL?
Version MySQL: 5.5.16
Comme décrit dans Fonctions et opérateurs de la distribution :
Le type du résultat peut être l'une des valeurs suivantes:
BINARY[(N)]
CHAR[(N)]
DATE
name__DATETIME
name__DECIMAL[(M[,D])]
SIGNED [INTEGER]
TIME
name__UNSIGNED [INTEGER]
Par conséquent, vous devriez utiliser:
SELECT CAST(PROD_CODE AS UNSIGNED) FROM PRODUCT
Pour transtyper les champs/valeurs varchar au format numérique, vous pouvez utiliser peu
SELECT (`PROD_CODE` * 1) AS `PROD_CODE` FROM PRODUCT`