Wenn Sie die Warnung Nr. 1287 erhalten, die lautet:„BINARY expr“ ist veraltet und wird in einer zukünftigen Version entfernt. Bitte verwenden Sie stattdessen CAST Wenn Sie eine Abfrage in MySQL ausführen, liegt dies daran, dass Sie den BINARY
verwenden Operator.
Der BINARY
-Operator ist seit MySQL 8.0.27 veraltet.
Um das Problem zu beheben, wandeln Sie den Wert mithilfe von CAST()
in eine Binärdatei um stattdessen funktionieren.
Beispiel für Warnung
Hier ist ein Codebeispiel, das die Warnung erzeugt:
SELECT BINARY 'Cat';
Ergebnis:
+-----------------------------------+| BINÄRE 'Katze' |+-----------------------------------+| 0x436174 |+-----------------------------------+1 Zeile im Satz, 1 Warnung (0,00 Sek.)
Wir können sehen, dass es gut funktioniert hat, aber wir haben auch eine Warnung erhalten.
Ich habe das in MySQL 8.0.27 ausgeführt und so die Warnung erhalten. Wenn Sie es in einer früheren Version von MySQL ausführen, erhalten Sie die Warnung wahrscheinlich nicht.
Sehen wir uns die Warnung an:
SHOW WARNINGS;
Ergebnis:
+---------+------+------------------------------------- -------------------------------------------------- ---------------+| Ebene | Code | Nachricht |+---------+------+------------------------------ -------------------------------------------------- --------------+| Warnung | 1287 | „BINARY expr“ ist veraltet und wird in einer zukünftigen Version entfernt. Bitte verwenden Sie stattdessen CAST |+---------+------+-------------------------- -------------------------------------------------- ------------------+
Dies steht im Einklang mit den Versionshinweisen zu MySQL 8.0.27, in denen Folgendes erklärt wird:
Der
BINARY
Operator ist jetzt veraltet und wird in einer zukünftigen Version von MySQL entfernt. Verwendung vonBINARY
löst jetzt eine Warnung aus. Verwenden SieCAST(... AS BINARY)
stattdessen.
Lösung
Wie die Warnmeldung andeutet, können wir die Warnung mit CAST()
beseitigen Funktion anstelle von BINARY
Betreiber:
SELECT CAST('Cat' AS BINARY);
Ergebnis:
Die Katze wurde jetzt in eine Binärdatei konvertiert, ohne dass Warnungen ausgegeben wurden.
Alternativ können Sie CONVERT()
verwenden statt CAST()
:
SELECT CONVERT('Cat' USING BINARY);
Ergebnis:
Gleiches Ergebnis.