পাঠ্য কলামগুলির জন্য কাস্টম অগ্রাধিকারগুলি ব্যবহার করে অর্ডার করুন


12

এটি একটি নমুনা সারণী:

name | cat
----------
hugo | sal
bob  | mgr
mike | dev
jeff | mgr
john | dev

উভয়ই nameএবং catবর্ণাচর।

cat এই নামের জন্য একটি বিভাগ প্রতিবিম্বিত করে, তবে আমি তাদের অগ্রাধিকার অর্পণ করতে চাই, তারপরে এগুলির অগ্রাধিকার অনুসারে আদেশ করা সমস্তগুলির তালিকা তৈরি করার জন্য একটি কোয়েরি করা উচিত।

কীভাবে সম্ভব? আমি বের করতে পারে catএকটি দ্বিতীয় টেবিলের মধ্যে, একটি বিদেশী কী ইত্যাদি গড়ে তুলতে কিন্তু দেওয়া আমার অ্যাপ্লিকেশানের খুবই সহজ এবং গঠন অ পরিবর্তনশীল হতে পারে কি সম্ভাবনার আমি তালিকায় করতে হবে mgrপ্রথম নাম, দ্বারা অনুসরণ devনাম, দ্বারা অনুসরণ salনাম ?

উত্তর:


20

ধরে নিই যে আপনি নিজের কাঠামো পরিবর্তন করতে পারবেন না, আপনি নিজের অর্ডার দিয়ে একটি CASE বিবৃতি ব্যবহার করতে পারেন:

ORDER BY case cat when 'mgr' then 1 when 'dev' then 2 else 3

তবে আপনি যদি আপনার কাঠামো পরিবর্তন করতে পারেন তবে Categoryবিভাগ বিভাগ এবং র‌্যাঙ্কিং সহ আপনি একটি সারণী তৈরি করতে পারেন , আপনার নমুনা টেবিলটিকে টেবিলে যোগ দিতে Categoryএবং এই র‌্যাঙ্কিং অনুসারে বাছাই করতে পারেন।


3
ORDER BY (case when `cat` = 'mgr' then 1 
when `cat` = 'dev' then 2 
else 3 end)

এই কাঠামোটি ওয়ার্ডপ্রেসে আমাকে সহায়তা করে। উদাহরণস্বরূপ প্রথমে কাস্টম পোস্টগুলি নির্বাচন করার জন্য তাদের অন্যান্য: পোস্টার এবং প্রকল্প হ'ল অর্ডার post_typeথেকে কাস্টম নির্বাচন করুন wp_posts(ক্ষেত্রে post_type= 'পোস্টার' তারপর 1 যখন post_type= 'প্রকল্প' তারপর অন্য 3 টি শেষ)


দ্রষ্টব্য যে ক) বন্ধনীগুলি alচ্ছিক: একটি কলামটি নির্দিষ্ট করা যায় যেখানেই একটি case অভিব্যক্তি (এটি বলা হয়) বৈধ; এবং খ) অভিব্যক্তিটি কিছুটা সহজ করা যেতে পারেcase `cat` when 'mgr' then 1 when 'dev' then 2 else 3 end
কলিন 'হার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.