با استفاده از تابع 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 آن را مدیریت کنید.

توسط پژوهشگر در 220 روز قبل ساعت 02:05
دسته بندی ها: MySQL MySQL for beginner
sara در 220 روز قبل ساعت 11:01

MAKE_SET برای هر رکورد، بیت‌های موجود در bitmask را به نام‌های متناظر برمی‌گرداند و نتیجه را به صورت رشته‌ای با جداکننده کاما نمایش می‌دهد. در این مثال با آرگومان‌های ('color','size','weight','material')، ترتیب آرگومان‌ها دقیقاً با بیت‌های ماسک مطابقت دارد. چون ممکن است bitmask برابر 0 یا NULL باشد، خروجی می‌تواند NULL یا رشته خالی باشد؛ برای تضمین یک مقدار پیش‌فرض می‌توانید از COALESCE یا IFNULL استفاده کنید. همچنین توجه کنید که بیت‌هایی خارج از بازه آرگومان‌ها توسط MAKE_SET نادیده گرفته می‌شوند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری