برای هر سفارش در جدول orders مقدار باقی‌مانده تقسیم ستون total_amount بر 100 را محاسبه و همراه order_id نمایش بده و فقط سطرهایی را نشان بده که این باقی‌مانده بزرگ‌تر از صفر باشد.

0.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:32

0.0

برای حل این مسئله از تابع MOD در MySQL استفاده کنید: SELECT order_id, MOD(total_amount, 100) AS remainder FROM orders WHERE MOD(total_amount, 100) > 0; دقت کنید اگر total_amount مقدار NULL یا عدد اعشاری دارد از COALESCE یا CAST/ROUND/FLOOR برای تبدیل مناسب استفاده کنید تا نتیجه مورد انتظار (باقی‌مانده صحیح) بدست آید.

توسط پژوهشگر در 221 روز قبل ساعت 01:32
دسته بندی ها: MySQL MySQL for beginner
nima در 221 روز قبل ساعت 12:51

برای جلوگیری از خطاهای NULL یا اعشار در محاسبه باقیمانده، بهتر است مقدار total_amount را با COALESCE به صفر تبدیل کنیم. اگر می‌خواهید با اعداد صحیح کار کنید، می‌توانید از CAST/FLOOR استفاده کنید تا باقیماندهٔ صحیحی به دست آید. مثلاً عبارت MOD(CAST(FLOOR(total_amount) AS UNSIGNED), 100) را با شرط MOD(...) > 0 بکار ببرید تا فقط ردیف‌هایی با باقی‌ماندهٔ مثبت نمایش داده شوند. توجه کنید MOD با مقادیر NULL نتیجه NULL می‌دهد؛ therefore استفاده از COALESCE می‌تواند مفید باشد.

گزارش

1 پاسخ

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

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