با استفاده از تابع MAKE_SET در MySQL، یک پرسوجو بنویسید که برای هر رکورد جدول features با ستون bitmask، نام ویژگیهای فعال را از لیستی از مقادیر ('color','size','weight','material') بازگرداند و آنها را با کاما جدا کند.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:05 0.0
از تابع MAKE_SET(bitmask, 'val1','val2', ...) استفاده کنید؛ هر آرگومان رشتهای متناظر با بیت موقعیت معین در bitmask است. در MySQL یک SELECT ساده با ستون جدیدی که نتیجه MAKE_SET را نشان میدهد بنویسید. نکتهها: ترتیب آرگومانها با بیتهای ماسک مطابقت دارد، اگر bitmask صفر یا NULL باشد خروجی ممکن است NULL یا رشته خالی باشد که میتوانید با COALESCE یا IFNULL آن را مدیریت کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
MAKE_SET برای هر رکورد، بیتهای موجود در bitmask را به نامهای متناظر برمیگرداند و نتیجه را به صورت رشتهای با جداکننده کاما نمایش میدهد. در این مثال با آرگومانهای ('color','size','weight','material')، ترتیب آرگومانها دقیقاً با بیتهای ماسک مطابقت دارد. چون ممکن است bitmask برابر 0 یا NULL باشد، خروجی میتواند NULL یا رشته خالی باشد؛ برای تضمین یک مقدار پیشفرض میتوانید از COALESCE یا IFNULL استفاده کنید. همچنین توجه کنید که بیتهایی خارج از بازه آرگومانها توسط MAKE_SET نادیده گرفته میشوند.
گزارش