Si vous obtenez le numéro d'avertissement 1287 indiquant 'BINARY expr' est obsolète et sera supprimé dans une future version. Veuillez utiliser CAST à la place lors de l'exécution d'une requête dans MySQL, c'est parce que vous utilisez le BINARY
opérateur.
Le BINARY
est obsolète depuis MySQL 8.0.27.
Pour résoudre le problème, convertissez la valeur en binaire à l'aide de CAST()
fonction à la place.
Exemple d'avertissement
Voici un exemple de code qui génère l'avertissement :
SELECT BINARY 'Cat';
Résultat :
+----------------------------+ | BINARY 'Cat' | +----------------------------+ | 0x436174 | +----------------------------+ 1 row in set, 1 warning (0.00 sec)
Nous pouvons voir que cela a bien fonctionné, mais nous avons également reçu un avertissement.
J'ai exécuté cela dans MySQL 8.0.27 et j'ai donc reçu l'avertissement. Si vous l'exécutez dans une version antérieure de MySQL, vous ne recevrez probablement pas l'avertissement.
Vérifions l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+----------------------------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------------------------------------------------------+ | Warning | 1287 | 'BINARY expr' is deprecated and will be removed in a future release. Please use CAST instead | +---------+------+----------------------------------------------------------------------------------------------+
Ceci est conforme aux notes de version de MySQL 8.0.27 qui expliquent :
Le
BINARY
est désormais obsolète et susceptible d'être supprimé dans une future version de MySQL. Utilisation deBINARY
provoque maintenant un avertissement. UtilisezCAST(... AS BINARY)
à la place.
Solution
Comme le message d'avertissement y fait allusion, nous pouvons nous débarrasser de l'avertissement en utilisant le CAST()
fonction au lieu du BINARY
opérateur :
SELECT CAST('Cat' AS BINARY);
Résultat :
+----------------------------------------------+ | CAST('Cat' AS BINARY) | +----------------------------------------------+ | 0x436174 | +----------------------------------------------+ 1 row in set (0.00 sec)
Le chat a maintenant été converti en binaire sans produire aucun avertissement.
Vous pouvez également utiliser CONVERT()
au lieu de CAST()
:
SELECT CONVERT('Cat' USING BINARY);
Résultat :
+----------------------------------------------------------+ | CONVERT('Cat' USING BINARY) | +----------------------------------------------------------+ | 0x436174 | +----------------------------------------------------------+ 1 row in set (0.00 sec)
Même résultat.