"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يتم محور بيانات جدول MySQL مع إجابات الأسئلة كأعمدة؟

كيف يتم محور بيانات جدول MySQL مع إجابات الأسئلة كأعمدة؟

نشر في 2025-03-23
تصفح:273

How to Pivot MySQL Table Data with Question Answers as Columns?

في MySQL ، يمكن تحقيق هذا التحول باستخدام تعبير الحالة بالاقتران مع وظائف التجميع.

لتحويل البيانات المحددة إلى تنسيق جدول محوري ، حيث يتم عرض إجابات الأسئلة كأعمدة ، يمكن استخدام الاستعلام التالي: حدد A.ID ، A.user_id ، A.JOB_ID ، الحد الأقصى (حالة عندما c.question = "هل هذا؟" ثم B.Answer نهاية) "هل هذا؟" ، كحد أقصى (حالة عندما c.question = 'أو هذا؟ "ثم B.Answer نهاية) أو هذا؟" الحد الأقصى (حالة عندما c.question = 'أو ذلك؟ "ثم B.Answer نهاية) أو ذلك؟ ' من النتائج أ الداخلية انضم إلى الإجابات ب على A.ID = B.FK_RESULT_ID الداخلية انضم إلى السؤال ج على b.fk_question_id = c.id مجموعة من A.ID ، A.user_id ، A.JOB_ID

في هذا الاستعلام ، يتم استخدام تعبير الحالة للتحقق من عمود السؤال الخاص بجدول الأسئلة وإرجاع الإجابة المقابلة من جدول الإجابات. ثم يتم استخدام وظيفة التجميع MAX للعثور على أقصى قيمة لكل سؤال ، والذي يمثل الإجابة المقدمة لهذا السؤال. يختار group_concat (متميز تسلسل ( 'max (حالة عندما c.question =' '' ، سؤال، "" ثم B.Answer End) كما "، Concat ('' '، سؤال ،' '') ) ) في sql من السؤال setsql = concat ('حدد A.ID ، A.user_id ، A.JOB_ID ، '، sql ،' من النتائج أ الداخلية انضم إلى الإجابات ب على A.ID = B.FK_RESULT_ID الداخلية انضم إلى السؤال ج على b.fk_question_id = c.id مجموعة من A.ID ، A.user_id ، A.JOB_ID ') ؛ إعداد STMT من sql ؛ تنفيذ STMT ؛ Englocate إعداد STMT ؛

يقوم هذا الكود بإنشاء عبارة SQL ديناميكية يمكنها التعامل مع أي عدد من الأسئلة. يقوم ببناء جملة SELECT بشكل ديناميكي عن طريق تسلسل القيمة القصوى لكل سؤال كاسم عمود.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3