يشكل إنشاء جدول محوري ديناميكي بأسماء الأعمدة الصحيحة في MySQL تحديًا بسيطًا. عند تشغيل الاستعلام المقدم، قد تواجه خطأ إذا كانت قيم user_id أعدادًا صحيحة. لحل هذه المشكلة، نحتاج إلى تغليف قيم user_id في العلامات الخلفية (`).
يبدو استعلام SQL المعدل كما يلي:
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'max(case when user_id = ''', user_id, ''' then score end) AS `', user_id, '`' ) ) INTO @sql FROM measure2; SET @sql = CONCAT('SELECT inspection_date, ', @sql, ' FROM measure2 GROUP BY inspection_date'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
التعديل الرئيسي هنا هو إضافة علامات خلفية حول قيم user_id في بيان GROUP_CONCAT. من خلال القيام بذلك، نحن نضمن أن قيم user_id يتم التعامل معها كسلاسل بدلاً من أسماء الأعمدة.
عرض SQL Fiddle التجريبي: https://sqlfiddle.com/#!2/eab24/ 4
الآن، حتى مع وجود قيم user_id الصحيحة، سيتم إنشاء الجدول المحوري الديناميكي بنجاح.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3