با استفاده از تابع BIT_COUNT در MySQL، برای هر سطر جدول numbers که ستون value دارد، id، value و تعداد بیتهای 1 در value را نمایش دهید و فقط سطرهایی را انتخاب کنید که تعداد بیتهای 1 برابر 3 باشد.
3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:37 0.0
برای حل این سوال از تابع داخلی BIT_COUNT(expr) استفاده کنید که تعداد بیتهای 1 در نمایش باینری مقدار صحیح را برمیگرداند. یک پرسوجوی ساده SELECT بنویسید مانند: SELECT id, value, BIT_COUNT(value) AS ones FROM numbers WHERE BIT_COUNT(value)=3; — میتوانید از alias برای نامگذاری ستون حاصل و از ORDER BY برای مرتبسازی استفاده کنید. توجه داشته باشید که بهتر است مقادیر منفی را پیشپردازش (مثلاً ABS()) یا به نوع مناسب تبدیل کنید تا نتیجه مورد انتظار برای شمارش بیتها بهدست آید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای نمایش id، value و تعداد بیتهای 1 در مقدار value از BIT_COUNT استفاده کنید و نتیجه را با alias مانند ones نمایش دهید. برای انتخاب فقط سطرهایی که دقیقا سه بیت 1 دارند، شرط WHERE BIT_COUNT(value) = 3 اضافه کنید. اگر مقدار منفی است، پیشپردازش (مثلاً ABS(value) یا CAST(value AS UNSIGNED)) توصیه میشود تا شمارش بیتها بهطور معمولی انجام شود. همچنین به NULL بودن مقادیر توجه کنید و در صورت نیاز چک کنید که value IS NOT NULL قبل از محاسبه باشد.
گزارش