Ако получите предупредителен номер 1287, който гласи „BINARY expr“ е отхвърлен и ще бъде премахнат в бъдеща версия. Моля, вместо това използвайте CAST когато изпълнявате заявка в MySQL, това е, защото използвате BINARY оператор.
BINARY Операторът е отхвърлен от MySQL 8.0.27.
За да отстраните проблема, прехвърлете стойността в двоичен файл, като използвате CAST() функция вместо това.
Пример за предупреждение
Ето пример за код, който генерира предупреждението:
SELECT BINARY 'Cat'; Резултат:
+----------------------------+ | BINARY 'Cat' | +----------------------------+ | 0x436174 | +----------------------------+ 1 row in set, 1 warning (0.00 sec)
Виждаме, че работи добре, но получихме и предупреждение.
Пуснах това в MySQL 8.0.27 и така получих предупреждението. Ако го стартирате в по-ранна версия на MySQL, вероятно няма да получите предупреждението.
Нека проверим предупреждението:
SHOW WARNINGS; Резултат:
+---------+------+----------------------------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------------------------------------------------------+ | Warning | 1287 | 'BINARY expr' is deprecated and will be removed in a future release. Please use CAST instead | +---------+------+----------------------------------------------------------------------------------------------+
Това е в съответствие с бележките за версията на MySQL 8.0.27, които обясняват:
BINARYОператорът вече е остарял и подлежи на премахване в бъдеща версия на MySQL. Използване наBINARYсега предизвиква предупреждение. ИзползвайтеCAST(... AS BINARY)вместо това.
Решение
Както намеква предупредителното съобщение, можем да се отървем от предупреждението, като използваме CAST() функция вместо BINARY оператор:
SELECT CAST('Cat' AS BINARY); Резултат:
+----------------------------------------------+
| CAST('Cat' AS BINARY) |
+----------------------------------------------+
| 0x436174 |
+----------------------------------------------+
1 row in set (0.00 sec) Котката вече е преобразувана в двоичен, без да дава никакви предупреждения.
Като алтернатива можете да използвате CONVERT() вместо CAST() :
SELECT CONVERT('Cat' USING BINARY); Резултат:
+----------------------------------------------------------+
| CONVERT('Cat' USING BINARY) |
+----------------------------------------------------------+
| 0x436174 |
+----------------------------------------------------------+
1 row in set (0.00 sec) Същият резултат.