با استفاده از تابع FIELD در MySQL، از جدول products نام محصول و دسته (category) را نمایش دهید و خروجی را بر اساس ترتیب دلخواه ('Electronics','Clothing','Food','Other') مرتب کنید به‌طوری که دسته‌های نام‌برده به همان ترتیب ظاهر شوند.

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

0.0

برای این کار از SELECT همراه با FIELD استفاده کنید: مثلاً SELECT name, category, FIELD(category,'Electronics','Clothing','Food','Other') AS rank FROM products ORDER BY rank; تابع FIELD موقعیت مقدار در لیست را برمی‌گرداند (مقدارهای ناموجود صفر برمی‌گردانند)، بنابراین می‌توانید از مقدار بازگشتی برای مرتب‌سازی سفارشی استفاده کرده و در صورت نیاز با COALESCE یا CASE مقادیر غیرموجود را در انتها قرار دهید.

توسط پژوهشگر در 221 روز قبل ساعت 01:15
دسته بندی ها: MySQL MySQL for beginner
arash در 221 روز قبل ساعت 13:59

تکنیک FIELD برای تعیین ترتیب سفارشی خوب است اما مراقب مقادیر غیر درون‌لیستی باشید؛ FIELD هر مقدار غیرموجود را 0 برمی‌گرداند که ممکن است قبل از مقادیر معتبر مرتب شود. برای اطمینان از اینکه دسته‌های ناموجود در انتها بیایند، از شرطی مانند CASE WHEN FIELD(category,'Electronics','Clothing','Food','Other') = 0 THEN 999 ELSE FIELD(category,'Electronics','Clothing','Food','Other') END در ORDER BY استفاده کنید. همچنین می‌توانید با COALESCE یا CASE، مقادیر گمشده را به یک دسته‌ی مشخص مانند 'Other' یکپارچه کنید. این کار نتیجه‌ای قابل پیش‌بینی‌تر و مرتب‌سازی مطمئن‌تری ارائه می‌دهد.

گزارش

1 پاسخ

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

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