「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)
同じ結果。