「BINARYexpr」という警告番号1287が表示された場合は非推奨であり、将来のリリースで削除される予定です。代わりにCASTを使用してください MySQLでクエリを実行する場合、これはBINARYを使用しているためです。 オペレーター。
BINARY 演算子はMySQL8.0.27で非推奨になりました。
この問題を修正するには、CAST()を使用して値をバイナリにキャストします 代わりに機能します。
警告の例
警告を生成するコードの例を次に示します。
SELECT BINARY 'Cat'; 結果:
+----------------------------+ | BINARY 'Cat' | +----------------------------+ | 0x436174 | +----------------------------+ 1 row in set, 1 warning (0.00 sec)
正常に機能したことがわかりますが、警告も表示されました。
MySQL 8.0.27で実行したので、警告が表示されました。以前のバージョンのMySQLで実行した場合、おそらく警告は表示されません。
警告を確認しましょう:
SHOW WARNINGS; 結果:
+---------+------+----------------------------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------------------------------------------------------+ | Warning | 1287 | 'BINARY expr' is deprecated and will be removed in a future release. Please use CAST instead | +---------+------+----------------------------------------------------------------------------------------------+
これは、次のことを説明するMySQL8.0.27リリースノートと一致しています。
BINARY演算子は現在非推奨であり、MySQLの将来のリリースで削除される可能性があります。BINARYの使用 警告が発生するようになりました。CAST(... AS BINARY)を使用します 代わりに。
解決策
警告メッセージがほのめかしているように、CAST()を使用して警告を取り除くことができます BINARYの代わりに関数 演算子:
SELECT CAST('Cat' AS BINARY); 結果:
+----------------------------------------------+
| CAST('Cat' AS BINARY) |
+----------------------------------------------+
| 0x436174 |
+----------------------------------------------+
1 row in set (0.00 sec) これで、猫は警告を出さずにバイナリに変換されました。
または、CONVERT()を使用することもできます CAST()の代わりに :
SELECT CONVERT('Cat' USING BINARY); 結果:
+----------------------------------------------------------+
| CONVERT('Cat' USING BINARY) |
+----------------------------------------------------------+
| 0x436174 |
+----------------------------------------------------------+
1 row in set (0.00 sec) 同じ結果。