Mysql
 sql >> база данни >  >> RDS >> Mysql

Коригиране на MySQL предупреждение 1287:„BINARY expr“ е отхвърлено и ще бъде премахнато в бъдеща версия

Ако получите предупредителен номер 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)

Същият резултат.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите елемент от списък на определена позиция в MySQL

  2. Как бързо да преименувам MySQL база данни (промяна на името на схемата)?

  3. Съобщение за грешка в синтаксиса на MySQL Операнд трябва да съдържа 1 колона(и)

  4. Извършване на промени в множество записи въз основа на промяна на един запис с SQL

  5. Как да изчислим дневните активни потребители (DAU) в MySQL