كيف يمكنني عرض النقط مباشرة في طاولة عمل MySQL
-
30-09-2019 - |
سؤال
أنا أستخدم MySQL Workbench CE 5.2.30 CE / Rev 6790. عند تنفيذ البيان التالي:
SELECT OLD_PASSWORD("test")
أنا فقط أعود لطيفة BLOB
أيقونة ، أحتاج إلى النقر الأيسر لتحديد الخلية ، والنقر بزر الماوس الأيمن واختيار "فتح القيمة في العارض" وحدد علامة التبويب "النص".
باستخدام نفس الشيء مع phpmyadmin ، أحصل مباشرة على قيمة OLD_PASSWORD
مكالمة. إنه مجرد مثال ، ولكن هل هناك طريقة لرؤية هذه النتائج مباشرة في الإخراج؟
المحلول
بالمختصر:
- اذهب إلى يحرر > التفضيلات
- يختار محرر SQL
- تحت تنفيذ SQL, ، التحقق من تعامل
- أعد تشغيل طاولة عمل MySQL (لن تتم مطالبتك أو إبلاغك بهذا المطلب).
في MySQL Workbench 6.0+
- اذهب إلى يحرر > التفضيلات
- يختار استعلامات SQL
- تحت نتائج الاستعلام, ، التحقق من تعامل
- ليس من الضروري إعادة تشغيل طاولة عمل MySQL (لن تتم مطالبتك أو إبلاغك بهذا المطلب).*
مع هذا الإعداد ، ستتمكن من تسلسل الحقول دون الحصول على النقط.
أعتقد أن هذا ينطبق على الإصدارات 5.2.22 وبعد ذلك وهو نتيجة هذا الخطأ mysql.
إخلاء المسؤولية: لا أعرف ما هو الجانب السلبي لهذا الإعداد - ربما عندما تختار BINARY
/VARBINARY
القيم التي سترونها نصًا عاديًا قد يكون مضللاً و/أو ربما يعوق الأداء إذا كانت كبيرة بما يكفي؟
نصائح أخرى
أداء ثلاث خطوات:
انتقل إلى "تفضيلات Workbench" -> اختر "محرر SQL" ضمن "نتائج الاستعلام": تحقق "علاج ثنائي/varbinary كسلسلة أحرف غير عامة"
أعد تشغيل MySQL Workbench.
الآن حدد
SELECT SUBSTRING(BLOB<COLUMN_NAME>,1,2500) FROM <Table_name>;
لست متأكدًا مما إذا كان هذا يجيب على السؤال ولكن إذا قمت بالنقر بزر الماوس الأيمن على أيقونة "blob" في الحقل (عند عرض الجدول) ، فهناك خيار "فتح القيمة في المحرر". تتيح لك إحدى علامات التبويب عرض النقطة. هذا في ver. 5.2.34
أعمال الصب ، لكنها ألم ، لذلك أوصي باستخدام طريقة Spioter ما لم تكن تستخدم الكثير من بيانات Blob حقًا.
SELECT CAST(OLD_PASSWORD("test") AS CHAR)
يمكنك أيضًا الإلقاء كنوع أخرى ، وحتى تقييد الحجم ، لكن في معظم الأوقات أستخدمها فقط:http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast
لا يبدو أنه من الممكن أخشى ، مدرج في القائمة كخشب في Workbench:http://bugs.mysql.com/bug.php؟id=50692سيكون مفيدًا جدًا!
كان لديه نفس المشكلة ، وفقا ل وثائق MySQL, ، يمكنك اختيار فرعية من النقطة:
SELECT id, SUBSTRING(comment,1,2000) FROM t
HTH ، Glissi
مقعد العمل 6.3
اتبع إجابة التسجيل العالي ثم استخدم UNCOMPRESS()
(بالمختصر:
1. انتقل إلى التحرير> التفضيلات
2. اختر محرر SQL
3. تحت تنفيذ SQL ، تحقق من علاج ثنائي/varbinary كسلسلة أحرف غير عامة
4. أعد تشغيل طاولة عمل MySQL (لن تتم مطالبتك أو إبلاغك بهذا المطلب).).
ثم
SELECT SUBSTRING(UNCOMPRESS(<COLUMN_NAME>),1,2500) FROM <Table_name>;
أو
SELECT CAST(UNCOMPRESS(<COLUMN_NAME>) AS CHAR) FROM <Table_name>;
إذا وضعت للتو UNCOMPRESS(<COLUMN_NAME>)
يمكنك النقر بزر الماوس الأيمن فوق Blob والنقر فوق "فتح القيمة في المحرر".
لقد قمت بتجميع عدد قليل من المنشورات الأخرى معًا ، لأن إصلاح "تفضيلات" Workbench لم ينجح بالنسبة لي. (WB 6.3)
SELECT CAST(`column` AS CHAR(10000) CHARACTER SET utf8) FROM `table`;
هناك القليل من الأشياء التي يمكنك القيام بها
SELECT GROUP_CONCAT(CAST(name AS CHAR))
FROM product
WHERE id IN (12345,12346,12347)
إذا كنت ترغب في الطلب عن طريق الاستعلام ، فيمكنك طلبها من خلال الممثلين كما هو موضح أدناه
SELECT GROUP_CONCAT(name ORDER BY name))
FROM product
WHERE id IN (12345,12346,12347)
كما تقول في هذه المدونة
ملاحظة: الإجابات السابقة هنا ليست مفيدة بشكل خاص إذا كانت النقطة عبارة عن تسلسل تعسفي للبايت ؛ على سبيل المثال ، ثنائي (16) لتخزين 128 بت GUID أو MD5 Checksum.
في هذه الحالة ، لا يوجد حاليًا تفضيل المحرر - على الرغم من أنني لدي قدم طلب ميزة الآن - راجع هذا الطلب للحصول على تفسير أكثر تفصيلاً.
حتى/ما لم يتم تنفيذ طلب الميزة] ، فإن الحل هو HEX
وظيفة في الاستعلام: SELECT HEX(mybinarycolumn) FROM mytable
.
البديل هو الاستخدام phpmyadmin بدلاً من Workbench MySQL - هناك سداسي عشرية افتراضيًا.
select CONVERT((column_name) USING utf8) FROM table;
في حالتي ، لا يعمل Workbench. لذلك استخدمت الحل أعلاه لإظهار بيانات Blob كنص.
حدد *، تحويل (Uncompress (العمود) باستخدام "UTF8") كعمود من Table_Name