Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Napraw ostrzeżenie MySQL 1287:„BINARY expr” jest przestarzałe i zostanie usunięte w przyszłej wersji

Jeśli otrzymasz ostrzeżenie o numerze 1287, które brzmi „BINARY expr” jest przestarzałe i zostanie usunięte w przyszłej wersji. Zamiast tego użyj CAST uruchamiając zapytanie w MySQL, dzieje się tak, ponieważ używasz BINARY operator.

BINARY operator jest przestarzały w MySQL 8.0.27.

Aby rozwiązać problem, rzutuj wartość na binarny za pomocą CAST() zamiast tego.

Przykład ostrzeżenia

Oto przykład kodu, który generuje ostrzeżenie:

SELECT BINARY 'Cat';

Wynik:

+----------------------------+
| BINARY 'Cat'               |
+----------------------------+
| 0x436174                   |
+----------------------------+
1 row in set, 1 warning (0.00 sec)

Widzimy, że zadziałało OK, ale otrzymaliśmy też ostrzeżenie.

Uruchomiłem to w MySQL 8.0.27 i otrzymałem ostrzeżenie. Jeśli uruchomisz go we wcześniejszej wersji MySQL, prawdopodobnie nie otrzymasz ostrzeżenia.

Sprawdźmy ostrzeżenie:

SHOW WARNINGS;

Wynik:

+---------+------+----------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                      |
+---------+------+----------------------------------------------------------------------------------------------+
| Warning | 1287 | 'BINARY expr' is deprecated and will be removed in a future release. Please use CAST instead |
+---------+------+----------------------------------------------------------------------------------------------+

Jest to zgodne z uwagami do wydania MySQL 8.0.27, które wyjaśniają:

BINARY operator jest teraz przestarzały i podlega usunięciu w przyszłej wersji MySQL. Użycie BINARY teraz powoduje ostrzeżenie. Użyj CAST(... AS BINARY) zamiast tego.

Rozwiązanie

Jak wskazuje komunikat ostrzegawczy, możemy pozbyć się ostrzeżenia za pomocą funkcji CAST() funkcja zamiast BINARY operator:

SELECT CAST('Cat' AS BINARY);

Wynik:

+----------------------------------------------+
| CAST('Cat' AS BINARY)                        |
+----------------------------------------------+
| 0x436174                                     |
+----------------------------------------------+
1 row in set (0.00 sec)

Kot został teraz przekonwertowany na binarny bez wyświetlania żadnych ostrzeżeń.

Możesz alternatywnie użyć CONVERT() zamiast CAST() :

SELECT CONVERT('Cat' USING BINARY);

Wynik:

+----------------------------------------------------------+
| CONVERT('Cat' USING BINARY)                              |
+----------------------------------------------------------+
| 0x436174                                                 |
+----------------------------------------------------------+
1 row in set (0.00 sec)

Ten sam wynik.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 3 sposoby na znalezienie wierszy zawierających wielkie litery w MySQL

  2. Jak korzystać z kreatora bazy danych MySQL cPanel

  3. Wydajność MySQL:identyfikacja długich zapytań

  4. Jak działa funkcja POSITION() w MySQL

  5. MySQL wybierz szybko 10 losowych wierszy z 600 000 wierszy