sql >> データベース >  >> RDS >> Mysql

MySQL警告1287を修正:「BINARYexpr」は非推奨であり、将来のリリースで削除される予定です

    「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)

    同じ結果。


    1. SQLServerのメッセージ529「データ型intからxmlへの明示的な変換は許可されていません」を修正しました

    2. MySQLWorkbenchを使用してクエリの結果をエクスポートする方法

    3. PostgreSQLのクラスター間レプリケーションを構成する方法

    4. Access2016でAccessデータベースをSQLServerにリンクする方法