Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Perbaiki Peringatan MySQL 1287:'BINARY expr' tidak digunakan lagi dan akan dihapus dalam rilis mendatang

Jika Anda mendapatkan nomor peringatan 1287 yang berbunyi 'BINARY expr' tidak digunakan lagi dan akan dihapus dalam rilis mendatang. Silakan gunakan CAST sebagai gantinya saat menjalankan kueri di MySQL, itu karena Anda menggunakan BINARY operator.

BINARY operator tidak digunakan lagi pada MySQL 8.0.27.

Untuk memperbaiki masalah ini, masukkan nilai ke biner menggunakan CAST() berfungsi sebagai gantinya.

Contoh Peringatan

Berikut contoh kode yang menghasilkan peringatan:

SELECT BINARY 'Cat';

Hasil:

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

Kami dapat melihat bahwa itu berfungsi dengan baik, tetapi kami juga mendapat peringatan.

Saya menjalankannya di MySQL 8.0.27 dan saya mendapat peringatan. Jika Anda menjalankannya di versi MySQL sebelumnya, Anda mungkin tidak akan mendapatkan peringatan tersebut.

Mari kita periksa peringatannya:

SHOW WARNINGS;

Hasil:

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

Hal ini sejalan dengan catatan rilis MySQL 8.0.27 yang menjelaskan:

BINARY operator sekarang tidak digunakan lagi, dan dapat dihapus dalam rilis MySQL yang akan datang. Penggunaan BINARY sekarang menyebabkan peringatan. Gunakan CAST(... AS BINARY) sebagai gantinya.

Solusi

Seperti yang disinggung oleh pesan peringatan, kita dapat menghilangkan peringatan dengan menggunakan CAST() fungsi alih-alih BINARY operator:

SELECT CAST('Cat' AS BINARY);

Hasil:

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

Kucing sekarang telah diubah menjadi biner tanpa menghasilkan peringatan apa pun.

Anda juga dapat menggunakan CONVERT() bukannya CAST() :

SELECT CONVERT('Cat' USING BINARY);

Hasil:

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

Hasil yang sama.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan baris terbaru untuk ID yang diberikan

  2. Rumus untuk Menghitung Kedekatan Geo

  3. Bagaimana cara mengelompokkan berdasarkan minggu di MySQL?

  4. Bagaimana saya bisa memasukkan data ke dalam database MySQL?

  5. Kesalahan MySql 150 - Kunci asing