Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Warnung 1287 behoben:„BINARY expr“ ist veraltet und wird in einer zukünftigen Version entfernt

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 von BINARY löst jetzt eine Warnung aus. Verwenden Sie CAST(... 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:

+---------------------------------------------- +| CAST('Cat' AS BINARY) |+---------------------------------------- ------+| 0x436174 |+----------------------------------------------+ 1 Zeile im Satz (0,00 Sek.)

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:

+---------------------------------------------- -------------+| CONVERT('Cat' USING BINARY) |+---------------------------------------- ------------------+| 0x436174 |+------------------------------------------------------------ -----------+1 Zeile im Satz (0,00 Sek.)

Gleiches Ergebnis.