سؤال

كيف يمكن تحديد و concat كل مجال في صف واحد ؟

أريد أن أفعل شيئا مشابهة لهذه:

SELECT concat(SELECT GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name')
as single FROM tbl_name

لكن من الواضح أعلاه لا تعمل.أي اقتراحات ؟

هل كانت مفيدة؟

المحلول

وسيكون لديك لبناء الاستعلام حيوي، أي قائمة كافة الأعمدة في concat(...) صراحة. يمكنك أن تفعل ذلك على جانب العميل عن طريق تشغيل اثنين من استفسارات أو في إجراء مخزن باستخدام عبارة المعدة.

نصائح أخرى

يمكنك أن تفعل ذلك في 3 خطوات:

1 - بناء قائمة الحقول

SELECT group_concat( column_name ) as field_list
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'TABLE_NAME'
GROUP BY table_name
LIMIT 0 , 1

2 - نسخ قيمة field_list المجال

3 - استخراج البيانات:

SELECT CONCAT( "Paste value copied at previous step" )
FROM TABLE_NAME

إذا قمت بإنشاء إجراء مخزن ، مما يمكنك الجمع بين الخطوات المذكورة أعلاه

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top