Als u waarschuwingsnummer 1287 krijgt met de tekst 'BINARY expr' is verouderd en zal in een toekomstige release worden verwijderd. Gebruik in plaats daarvan CAST wanneer u een query uitvoert in MySQL, is dit omdat u de BINARY
gebruikt exploitant.
De BINARY
operator is verouderd vanaf MySQL 8.0.27.
Om het probleem op te lossen, cast de waarde naar binair met behulp van de CAST()
functie in plaats daarvan.
Voorbeeld van waarschuwing
Hier is een voorbeeld van code die de waarschuwing produceert:
SELECT BINARY 'Cat';
Resultaat:
+----------------------------+ | BINARY 'Cat' | +----------------------------+ | 0x436174 | +----------------------------+ 1 row in set, 1 warning (0.00 sec)
We kunnen zien dat het goed werkte, maar we kregen ook een waarschuwing.
Ik heb dat uitgevoerd in MySQL 8.0.27 en dus kreeg ik de waarschuwing. Als u het in een eerdere versie van MySQL uitvoert, krijgt u waarschijnlijk geen waarschuwing.
Laten we de waarschuwing eens bekijken:
SHOW WARNINGS;
Resultaat:
+---------+------+----------------------------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------------------------------------------------------+ | Warning | 1287 | 'BINARY expr' is deprecated and will be removed in a future release. Please use CAST instead | +---------+------+----------------------------------------------------------------------------------------------+
Dit is in overeenstemming met de release-opmerkingen van MySQL 8.0.27 waarin wordt uitgelegd:
De
BINARY
operator is nu verouderd en kan in een toekomstige release van MySQL worden verwijderd. Gebruik vanBINARY
veroorzaakt nu een waarschuwing. GebruikCAST(... AS BINARY)
in plaats daarvan.
Oplossing
Zoals het waarschuwingsbericht aangeeft, kunnen we de waarschuwing verwijderen door de CAST()
te gebruiken functie in plaats van de BINARY
operator:
SELECT CAST('Cat' AS BINARY);
Resultaat:
+----------------------------------------------+ | CAST('Cat' AS BINARY) | +----------------------------------------------+ | 0x436174 | +----------------------------------------------+ 1 row in set (0.00 sec)
De kat is nu omgezet naar binair zonder waarschuwingen.
U kunt ook CONVERT()
. gebruiken in plaats van CAST()
:
SELECT CONVERT('Cat' USING BINARY);
Resultaat:
+----------------------------------------------------------+ | CONVERT('Cat' USING BINARY) | +----------------------------------------------------------+ | 0x436174 | +----------------------------------------------------------+ 1 row in set (0.00 sec)
Zelfde resultaat.