با استفاده از تابع BIT_COUNT در MySQL، یک پرس‌وجو بنویسید که برای هر سطر جدول numbers با ستون value مقدار اصلی و تعداد بیت‌های 1 در نمایش باینری آن را نمایش دهد و نتایج را بر اساس تعداد بیت‌های 1 به صورت نزولی مرتب کند.

11.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:55

0.0

از تابع BIT_COUNT(value) برای شمارش بیت‌های 1 در نمایش باینری یک عدد استفاده کنید؛ مثلاً SELECT value, BIT_COUNT(value) AS ones FROM numbers ORDER BY ones DESC; که در آن می‌توانید از alias برای ستون شمارش و از ORDER BY برای مرتب‌سازی استفاده کنید. برای فیلتر کردن نتایج نمونه از WHERE BIT_COUNT(value) > n بهره ببرید و توجه کنید برای مقادیر غیرمنفی نتیجه مستقیم و قابل‌فهم‌تری دارد.

توسط پژوهشگر در 201 روز قبل ساعت 03:55
دسته بندی ها: MySQL MySQL for beginner
sara در 201 روز قبل ساعت 04:41

BIT_COUNT مقدارهای باینری را می‌شمارد و برای هر سطر ستون value و تعداد بیت‌های 1 را نشان می‌دهد. اگر مقدارهای منفی دارید، نتیجه ممکن است ناواضح باشد چون بیت‌های 1 در نمایش دو's complement محاسبه می‌شود؛ بهتر است value را به UNSIGNED تبدیل کنید مثل BIT_COUNT(CAST(value AS UNSIGNED)) یا تنها از مقادیر غیرمنفی استفاده کنید. برای مرتب‌سازی از ORDER BY ones DESC استفاده کنید و به alias مانند ones توجه کنید. همچنین می‌توانید با WHERE value >= 0 AND BIT_COUNT(CAST(value AS UNSIGNED)) > n نتایج مورد نظر را فیلتر کنید.

گزارش

1 پاسخ

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

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