Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL चेतावनी 1287 को ठीक करें:'BINARY expr' को हटा दिया गया है और भविष्य के रिलीज़ में हटा दिया जाएगा

यदि आपको चेतावनी संख्या 1287 मिलती है जिसमें लिखा होता है कि 'BINARY expr' को हटा दिया गया है और भविष्य के रिलीज में हटा दिया जाएगा। कृपया इसके बजाय CAST का उपयोग करें MySQL में क्वेरी चलाते समय, ऐसा इसलिए है क्योंकि आप BINARY . का उपयोग कर रहे हैं ऑपरेटर।

BINARY ऑपरेटर को MySQL 8.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 |
+---------+------+----------------------------------------------------------------------------------------------+

यह MySQL 8.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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. उन पंक्तियों का चयन कैसे करें जिनमें वर्तमान दिन का टाइमस्टैम्प है?

  2. MySQL LEAST () फ़ंक्शन - तर्कों की सूची में सबसे छोटा तर्क खोजें

  3. एकल क्वेरी में एकाधिक चयन कथन

  4. PHP mysql सम्मिलित दिनांक प्रारूप

  5. मैं टर्मिनल से MySQL के साथ डेटाबेस कैसे आयात कर सकता हूं?