मेरे पास एक MySQL डेटाबेस है जिसमें बाइनरी-टाइप किए गए कॉलम वाले टेबल हैं। मैं इसे चलाने के बिना उस कॉलम को प्रोजेक्ट करने में सक्षम होना चाहता हूं, उदाहरण के लिए, HEX()
। क्या mysql
सीएलआई उपकरण में एक कॉन्फ़िगरेशन विकल्प या अन्य साधन हैं जो बाइनरी डेटा का प्रतिनिधित्व इस तरीके से प्रदर्शित करने के लिए करते हैं जो मेरे कंसोल के लिए मनमानी बाइट्स को उल्लसित/कष्टप्रद तरीके से समझने के लिए आउटपुट नहीं करेगा?क्या MySQL सीएलआई उपकरण कंसोल-अनुकूल तरीके से बाइनरी डेटा प्रदर्शित करने का एक तरीका प्रदान करता है?
क्या MySQL सीएलआई उपकरण कंसोल-अनुकूल तरीके से बाइनरी डेटा प्रदर्शित करने का एक तरीका प्रदान करता है?
उत्तर
जब से तुम ज्यादातर सुविधा के लिए मेज पर देखने के लिए, दृश्य बनाने हैं:
SELECT * FROM myview;
यह एक समाधान है हालांकि यह सही नहीं है। – smartwjw
व्यवहार: फिर
CREATE OR REPLACE VIEW myview AS
SELECT col1, HEX(col2) AS col2, col3, etc....
FROM table;
, तुम सब करने की ज़रूरत संदर्भ myview
बजाय table
है बाइनरी डेटा के साथ परिणाम सेट देखने पर MySQL कमांड लाइन क्लाइंट का हमेशा मुझे परेशान रहा है, असल में मुझे यह पृष्ठ मिला क्योंकि मुझे एक बार फिर से MySQL कमांड लाइन क्लाइंट द्वारा परेशान किया गया था (मेरे टर्मि में बाइनरी डेटा डंपिंग नल बाइनरी यूयूआईडी कॉलम के साथ सेट किए गए परिणाम को देखते हुए) और मैं इस मुद्दे को एक बार और सभी के लिए हल करना चाहता था :-)
विचार बनाना वास्तव में मेरे लिए एक विकल्प नहीं है (मैं दर्जनों तालिकाओं को देख रहा हूं बाइनरी यूयूआईडी कॉलम) और मैंने यह भी पाया कि SELECT *
से इसके बजाय सभी कॉलम नाम टाइप करने के लिए स्विच करना वास्तव में परेशान है (बस HEX()
को एक कॉलम के मान पर लागू किया जा सकता है)।
आखिरकार मैं एक रचनात्मक हैक के साथ आया जो इस परेशानी के वैकल्पिक समाधान के लिए प्रेरणा प्रदान करता है: टर्मिनल प्रतिपादन के लिए आउटपुट को स्वच्छ करने के लिए कस्टम पेजर कमांड का उपयोग करना। यहाँ यह कैसे काम करता है:
#!/usr/bin/python
import binascii, string, sys
for line in sys.stdin:
line = line.rstrip()
column, _, value = line.partition(': ')
if any(c not in string.printable for c in value):
sys.stdout.write("%s: %s\n" % (column, binascii.hexlify(value)))
else:
sys.stdout.write("%s\n" % line)
प्रारंभ MySQL कमांड लाइन ग्राहक इस प्रकार है::
$ mysql --pager=/home/peter/binary-filter.py --vertical ...
एक निष्पादन योग्य (chmod + x) पायथॉन लिपि निम्नलिखित सामग्री के साथ बनाएं
लागू होने पर पाइथन स्क्रिप्ट का पथनाम बदलें। आप स्क्रिप्ट को अपने
$PATH
में भी डाल सकते हैं, उस स्थिति में आप नाम को--pager
विकल्प (जैसे किless
का उपयोग MySQL क्लाइंट के पेजर के रूप में) के समान ही कर सकते हैं।अब जब आप
SELECT ...
, किसी भी लाइन है कि एक स्तंभ जिसका मान प्रिंट न हो सकने पात्रों ताकि पूरा मूल्य हेक्साडेसिमल वर्ण, MySQL केHEX()
समारोह के परिणामों के समान के रूप में प्रदान की गई है फिर से लिखा है पता चलता है।
अस्वीकरण: यह एक पूर्ण समाधान से दूर अजगर झलकी मैं पता चला SELECT ... \G
प्रारूप उत्पादन (इसलिए --vertical
विकल्प) की उम्मीद है, उदाहरण के लिए और इसलिए यह शामिल करने के लिए बाध्य किया है तो मुझे पांच मिनट के सभी के लिए यह परीक्षण किया कीड़े।
मेरा बिंदु यह दिखाने के लिए था कि समस्या MySQL कमांड लाइन क्लाइंट के पक्ष में हल की जा सकती है, क्योंकि यही समस्या है!(यही कारण है कि मुझे सर्वर साइड व्यू को परिभाषित करने के लिए पीछे की ओर लगता है - केवल कमांड लाइन क्लाइंट को अधिक उपयोगकर्ता के अनुकूल बनाने के लिए :-P)
मेरे लिए डेटाबेस आकार में कोई समस्या नहीं है, इसलिए मैं दो अलग-अलग कॉलम का उपयोग करूंगा प्रत्येक तालिका में, एक बाइनरी (16) के रूप में, और दूसरे को इंडेक्सिंग के बिना चार (32) के रूप में। दोनों के पास एक ही मूल्य होगा। जब मुझे खोज करने की ज़रूरत है तो मैं बाइनरी कॉलम का उपयोग करूंगा, और जब मुझे पढ़ने की ज़रूरत है तो मैं char (32) का उपयोग करूंगा। इस परिदृश्य के साथ कोई समस्या है? मेरे लिए /etc/my.cnf
कार्यों में
सेट mysql ग्राहक विकल्प:
[client]
binary-as-hex = true
[mysql]
binary-as-hex = true
- 1. क्या एएनटीएलआर एक बाइनरी डेटा प्रारूप को क्रमबद्ध/deserialize करने के लिए एक उपयुक्त उपकरण है?
- 2. डब्ल्यूपीएफ में गतिशील डेटा प्रदर्शित करने का एक अच्छा तरीका क्या है?
- 3. क्या रूबी निर्दिष्ट एन्कोडिंग के साथ File.read() करने का एक तरीका प्रदान करता है?
- 4. क्या फेसबुक डीबग जेएस लोड करने का एक तरीका प्रदान करता है?
- 5. बाइनरी डेटा को HTTP REST API सेवा में स्थानांतरित करने का एक अच्छा तरीका क्या है?
- 6. क्या ग्रोवी एक तंत्र प्रदान करता है?
- 7. एक वेबएपी विधि से कई बाइनरी फ़ाइलों को प्रस्तुत करने का सबसे अच्छा तरीका क्या है?
- 8. क्या चरणबद्ध तरीके से दिखाने का कोई तरीका है क्लोजर फ़ंक्शन का मूल्यांकन कैसे करता है?
- 9. किसी भाषा-स्वतंत्र बाइनरी प्रारूप में डेटा क्रमबद्ध करने का सबसे अच्छा तरीका क्या है?
- 10. बाइनरी डेटा
- 11. जावास्क्रिप्ट में बाइनरी डेटा पढ़ने का कोई तरीका है?
- 12. * .py में डेटा संग्रहीत करने का तरीका क्या है?
- 13. क्या आईपैड सिम्युलेटर फुलस्क्रीन प्रदर्शित करने का कोई तरीका है?
- 14. क्या ASP.NET में बहुत अधिक जानकारी प्रदर्शित करने का एक अच्छा तरीका है?
- 15. रुझान डेटा संग्रहीत करने का सबसे अच्छा तरीका क्या है?
- 16. mysql बाइनरी तुलना नहीं करता उपयोग सूचकांक
- 17. क्या डीबग करने का कोई अच्छा तरीका है "स्ट्रिंग या बाइनरी डेटा काटा जाएगा?"
- 18. पायथन फ़ंक्शन पैरामीटर के लिए अतिरिक्त सजावट/मेटाडेटा प्रदान करने का एक अच्छा तरीका क्या है?
- 19. क्या एमएफसी क्लिपबोर्ड पर टेक्स्ट फेंकने का एक त्वरित तरीका प्रदान करता है?
- 20. फ़्लोटर डेटा श्रृंखला का नाम प्रदर्शित करता है जब माउस
- 21. एंड्रॉइड एक संवाद से एक और संवाद प्रदर्शित करता है
- 22. क्या क्यूटी एक (गारंटीकृत) डीबग परिभाषा प्रदान करता है?
- 23. मुझे एक बाइनरी पार्सर नाम दें। बाइनरी डेटा
- 24. क्या चींटी निर्भरता को बाईपास करने का एक तरीका प्रदान करती है?
- 25. क्या एक अलग स्कोप उपनाम के लिए डिफ़ॉल्ट मान प्रदान करने का कोई तरीका है?
- 26. हेरोकू पर बाइनरी फाइलों को स्टोर करने का एक अच्छा तरीका क्या है?
- 27. कैसे प्रदान किया जाता है (आईई और फ़ायरफ़ॉक्स में) एक पॉपअप में एक बाइनरी फ़ाइल डाउनलोड बंद करता है?
- 28. जब कोई बाइनरी फ़ाइल चलती है, तो क्या यह एक बार में अपने पूरे बाइनरी डेटा को स्मृति में कॉपी करता है? क्या मैं इसे बदल सकता हूं?
- 29. एक mysql डेटाबेस को denormalize करने का एक अच्छा तरीका क्या है?
- 30. किसी webservice से बाइनरी डेटा के बड़े हिस्से को वापस करने का सबसे अच्छा तरीका क्या है?
क्या 'हेक्स साथ कुछ गड़बड़ है()'? यह सही समाधान लगता है। – wallyk
क्योंकि ऐसा करने के लिए जब मैं वास्तव में चाहता हूं तो एक त्वरित 'चयन * ...' काफी असुविधाजनक है। –