সংবেদনশীল ফলাফলের কেস সাজাতে বিবৃতি দ্বারা এসকিউএল অর্ডার কীভাবে ব্যবহার করবেন?


144

আমার কাছে একটি এসকিউএল ডাটাবেস রয়েছে যা আমি বর্ণানুক্রমিক ক্রম অনুসারে বাছাই করার চেষ্টা করছি। সমস্যাটি হচ্ছে, এসকিউএলাইট বাছাইয়ের সময় A = a বিবেচনা করে না বলে মনে হয়, সুতরাং আমি এর মতো ফলাফল পাই:

এ বি সি টি এ বি সি জি

আমি পেতে চাই:

ক এ বি বি সি সি জি জি টি

বিশেষ কোন এসকিউএল জিনিসটি করা দরকার যা আমি জানিনা?

SELECT * FROM NOTES ORDER BY title

2
এবং এটি করার আরও কার্যকর উপায় কী? "শিরোনাম অনুসারে শিরোনাম নোকস" বা "অর্ডার বাই লোয়ার (শিরোনাম)"। (এফওয়াইআই, আমার ক্ষেত্রে, অ্যান্ড্রয়েড, অর্থাৎ এসকিউএলাইটে চলছে)
পাসকেল

উত্তর:


253

আপনি করতে পারেন ORDER BY TITLE COLLATE NOCASE

সম্পাদনা করুন: আপনার যদি নির্দিষ্ট করতে ASCবা প্রয়োজন হয় DESCতবে এটি NOCASEপছন্দের পরে যুক্ত করুন

ORDER BY TITLE COLLATE NOCASE ASC

অথবা

ORDER BY TITLE COLLATE NOCASE DESC

8
"অর্ডার বাই টাইটেল কলট নোকস" "অর্ডার বাই লোয়ার (টাইটেল)" এর চেয়ে বেশি দক্ষ?
পাসকাল

যে চুষে! তাই না? কি দারুন! কেন হ্যাক এসকিউএলাইট এটিকে বাছাইয়ের ক্ষেত্রে কেসটি সংবেদনশীল করে তুলছে .... আমার মনে মানায় না ... দুর্ভাগ্যক্রমে!
ভিনসি

1
@ ভিনসি: কেস-সেনসিটিভ স্ট্রিং তুলনা সম্পর্কে এত অদ্ভুত কি তা আমি দেখতে পাই না। তার মানে কত <, ==, যে প্রোগ্রামিং ভাষা যে আমি সঙ্গে পরিচিত নই ডিফল্টরূপে ইত্যাদি অপারেটার হবে।
dan04

@ dan04 আপনার ক্ষেত্রে কতটা বার স্ট্রিং দরকার যা সংবেদনশীল হতে হবে? এ কারণেই এটি হাস্যকর। স্ট্রিং বাছাই করার সময় কে কে কেস কেয়ার করে? আমি কেবলমাত্র সুবিধাটি দেখছি তা প্রমাণীকরণ বা পাসওয়ার্ডের বৈধতার জন্য! এই কারণেই ডিফল্ট হতে হবে এটি সংবেদনশীল, ইমো হতে হবে!
ভিনসি 20

এটি সাধারণত বাক্সের বাইরে কাজ করবে না, যদি ডাটাবেসটি ইউটিএফ 8 ব্যবহার করে। (লক্ষ্য করুন যে শিরোনামটি কেবল এসকিউএলাইটকে বোঝায় না)) এই ক্ষেত্রে নীচের অংশে () বা উপরের () ব্যবহার করার পরামর্শটি কাজ করে।
মার্কো

99

আপনি বাছাইয়ের উদ্দেশ্যে সমস্ত কিছু ছোট হাতের অক্ষরে রূপান্তর করতে পারেন:

SELECT * FROM NOTES ORDER BY LOWER(title);

আপনি যদি নিশ্চিত করতে চান যে বড় হাতের অক্ষরগুলি এখনও ছোট হাতের চেয়ে শেষ হয় তবে কেবল এটিকে মাধ্যমিক বাছাই হিসাবে যুক্ত করুন:

SELECT * FROM NOTES ORDER BY LOWER(title), title;

1
আমি একাধিক কলাম দ্বারা বাছাই করছি, আমি কি প্রত্যেকটির চারপাশে লোয়ার লাগাতে পারি?
কোডফিউশনমোবাইল

2
হ্যাঁ, অর্ডার বিয়ের আচরণ কেস-সংবেদনশীল হওয়ার কোনও উপায় নেই।
চাদ বার্চ

1
'UPPER' এবং 'LOWER' এর মধ্যে কোনও পার্থক্য রয়েছে
জগদীশ

2
এই উদ্দেশ্যে, তারা উভয়ই একই প্রভাব অর্জন করবে না, যা সমস্ত আইটেমের ক্ষেত্রে একই হয়।
বেন ব্যারন

1
এগুলি কেবল [] ^ _ `অক্ষরের জন্য পৃথক`
dan04

0
SELECT * FROM NOTES ORDER BY UPPER(title)              

14
আপনার উত্তরের জন্য ধন্যবাদ. তবে: একটি উত্তরের উত্তরটি সর্বদা কেবল ওপি-র জন্যই নয়, ভবিষ্যতে এসও-তে আগত দর্শকদের জন্য কী করা হয়েছিল এবং কেন এটি এমনভাবে করা হয়েছিল তার একটি ব্যাখ্যা সবসময় থাকবে।
বি 001 ᛦ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.