sql >> Databáze >  >> RDS >> Mysql

Oprava varování MySQL 1287:„BINARY expr“ je zastaralé a bude odstraněno v budoucí verzi

Pokud se zobrazí varování číslo 1287, které zní „BINARY expr“ je zastaralé a bude odstraněno v budoucí verzi. Místo toho použijte CAST při spouštění dotazu v MySQL je to proto, že používáte BINARY operátor.

BINARY Operátor je od MySQL 8.0.27 zastaralý.

Chcete-li problém vyřešit, přeneste hodnotu do binárního kódu pomocí CAST() místo toho.

Příklad varování

Zde je příklad kódu, který vytváří varování:

SELECT BINARY 'Cat';

Výsledek:

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

Vidíme, že to fungovalo dobře, ale také jsme dostali varování.

Spustil jsem to v MySQL 8.0.27 a tak jsem dostal varování. Pokud jej spustíte v dřívější verzi MySQL, pravděpodobně neobdržíte varování.

Podívejme se na varování:

SHOW WARNINGS;

Výsledek:

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

To je v souladu s poznámkami k vydání MySQL 8.0.27, které vysvětlují:

BINARY operátor je nyní zastaralý a v budoucí verzi MySQL bude odstraněn. Použití BINARY nyní způsobí varování. Použijte CAST(... AS BINARY) místo toho.

Řešení

Jak varovná zpráva naráží, můžeme se varování zbavit pomocí CAST() místo funkce BINARY operátor:

SELECT CAST('Cat' AS BINARY);

Výsledek:

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

Kočka byla nyní převedena do binární podoby, aniž by vyvolala jakákoli varování.

Alternativně můžete použít CONVERT() místo CAST() :

SELECT CONVERT('Cat' USING BINARY);

Výsledek:

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

Stejný výsledek.


  1. místní připojení docker postgres pgadmin

  2. SQL více sloupců v klauzuli IN

  3. Jak aktualizovat vybrané řádky hodnotami ze souboru CSV v Postgresu?

  4. SQL SELECT DISTINCT:Nejlepší postupy pro výkon