إدراج قيمة السداسي الأسلوب mysql
-
29-09-2019 - |
سؤال
لقد قمت بإنشاء قاعدة بيانات SQL باستخدام Java ، أنا noob عندما يتعلق الأمر بـ SQL ولكن تم تكوينها وإعدادها ، لدي جدول تم إنشاؤه يحتوي على عمودين ، الأول هو عدد صحيح كبير يمارس الزيادات ، والثانية التي جربتها تحديد ذلك على أنه char و varchar و binary ، لكنني ما زلت لا أحصل على الوظيفة المطلوبة ، قل أنني أحاول تخزين رقم hex 0a في عمود char أحصل على خطأ ، لقد قمت بإلحاق 0x بالبداية A التي يبدو أنها تخزنها ، ولكن متى أقوم بطباعة المحتويات الفارغة أو في بعض الحالات أحصل على أحرف مثل "/" أو "؟" ، حاولت أيضًا استخدام SQL Explorer ويعطيني نفس النتيجة لعرض الجدول ،
مشكلتي هي أنني بحاجة إلى تخزين سلسلة سداسي عشرة من أحرف مثل EB8D4EE6.
هل يمكن لأحد أن ينصحني بكيفية القيام بذلك؟
المحلول
إليك منشورًا رائعًا للمدونة ، أشير دائمًا إلى تذكر نفسي بالتعامل المناسب مع قيم Hex والحقول الثنائية ، وأضع بعض الآثار المترتبة على الأداء.
http://www.xaprb.com/blog/2009/02/12/5-ways-to-make-hexadecimal-identifiers-perform-better-on-mysql/
نصائح أخرى
نرى http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html
يدعم MySQL القيم السداسية ، المكتوبة باستخدام شكل X'Val ، أو X'Val "، أو 0xval ، حيث يحتوي VAL على أرقام سداسية (0..9 ، A..F). أحرف الأرقام لا يهم. بالنسبة للقيم المكتوبة باستخدام تنسيق X'Val 'أو X'Val ، يجب أن تحتوي VAL على عدد زوجي من الأرقام. بالنسبة للقيم المكتوبة باستخدام بناء جملة 0xVal ، يتم التعامل مع القيم التي تحتوي على عدد فردي من الأرقام على أنها ذات رائدة إضافية 0. على سبيل المثال ، يتم تفسير 0x0a و 0xaaa على أنها 0x0a و 0x0aaa.
في السياقات الرقمية ، تعمل القيم السداسية السداسية مثل الأعداد الصحيحة (دقة 64 بت). في سياقات السلسلة ، يتصرفون مثل السلاسل الثنائية ، حيث يتم تحويل كل زوج من أرقام السداسي إلى حرف:
ربما يجب عليك تخزين رقم السداسي في عمود عدد صحيح. يمكنك بعد ذلك تحويل مرة أخرى إلى Hex عند اختيار استخدام HEX()
وظيفة.
على سبيل المثال ،
INSERT INTO MyTable (`MyIntegerColumn`) VALUES (0xeb8d4ee6);