2013-01-18 18 views
7

लौटाता है मैं अपने डेटाबेस से किसी मान के MD5 एन्कोडेड स्ट्रिंग को वापस करने का प्रयास कर रहा हूं, लेकिन यह केवल एक खाली परिणाम देता है (शून्य, बस खाली नहीं)। मैं सिर्फ इस क्वेरी चल रहा है और एक ही परिणाम प्राप्त प्रयास किया है:एमडी 5 फ़ंक्शन खाली परिणाम

SELECT MD5('test'); 

मैं MySQL सर्वर, MySQL Workbench, आदि को पुन: प्रारंभ की कोशिश की है लेकिन एक ही परिणाम मिलता है। यदि मैं एक अलग डेटाबेस/सर्वर पर एक ही कमांड चलाने का प्रयास करता हूं, तो यह हैश स्ट्रिंग को ठीक ठीक करता है।

मैं क्या गलत कर रहा हूं? क्या एक ऐसी सेटिंग है जिसे मैंने दुर्घटना पर अक्षम कर दिया है?

+0

आप CLI (mysql.exe) से अधिक क्वेरी चलाने के लिए करने की कोशिश की था? –

+0

नहीं, मैंने इसे अपने एसक्यूएल वर्कबेंच में चलाया। – JimmyJammed

उत्तर

9

MySQL v5.5.3 से पहले, MD5() ने एक बाइनरी स्ट्रिंग लौटा दी।

डिफ़ॉल्ट रूप से, MySQL वर्कबेंच बाइनरी स्ट्रिंग्स (आकस्मिक गलत व्याख्या से बचने के लिए) प्रदर्शित नहीं करता है; हालांकि आउटपुट ग्रिड में बाइनरी स्ट्रिंग मान प्रदर्शित करना संभव है: व्यू> एडिट> वरीयताएँ> एसक्यूएल एडिटर>BINARY/VARBINARY को नॉनबाइनरी कैरेक्टर स्ट्रिंग के रूप में देखें।

वैकल्पिक रूप से, या तो अपने MySQL सर्वर के उन्नयन या एक गैर बाइनरी वर्ण सेट करने के लिए परिणाम ट्रांसकोड:

SELECT CONVERT(MD5('test') USING utf8) 
+0

धन्यवाद कि इसे सही किया गया! अजीब है कि यह वही वर्कबेंच का उपयोग करते समय परिणाम दिखाता है लेकिन विभिन्न डेटाबेस/सर्वर। – JimmyJammed

+0

@ जेम्स हिकमैन: अजीब नहीं कि मेरे जवाब की पहली पंक्ति ... – eggyal

+0

आह, मैंने सोचा कि यह आईडीई के कारण हो सकता है। अच्छे खर्च! – Leigh

संबंधित मुद्दे