এসকিউএল সার্ভার একটি বুদ্ধিমানের পালাতে


338

আমি কীভাবে আন্ডারস্কোর চরিত্রটি থেকে বাঁচবো?

আমি নীচের মতো কিছু লিখছি যেখানে ক্লজ এবং শেষে _ ডি দিয়ে প্রকৃত প্রবেশিকা সন্ধান করতে সক্ষম হতে চাই।

Where Username Like '%_d'

উত্তর:


523

টি-এসকিউএল রেফারেন্স লাইকের জন্য :

আপনি ওয়াইল্ডকার্ড প্যাটার্ন মিলিয়ে অক্ষরগুলিকে আক্ষরিক অক্ষর হিসাবে ব্যবহার করতে পারেন। একটি ওয়াইল্ডকার্ড অক্ষরকে আক্ষরিক চরিত্র হিসাবে ব্যবহার করতে, ওয়াইল্ডকার্ড অক্ষরটিকে বন্ধনীতে আবদ্ধ করুন। নিম্নলিখিত টেবিলটি লাইক কীওয়ার্ড এবং []] ওয়াইল্ডকার্ড অক্ষর ব্যবহারের কয়েকটি উদাহরণ দেখায়।

আপনার ক্ষেত্রে:

... LIKE '%[_]d'

ওহ মানুষ! ... যদি এটি এখনও কাজ না করে, আপনার কলামটি ঠিক আছে তা নিশ্চিত করুন।
জেনস ফ্রেন্ডসেন 21

198

একথাও ঠিক যে @Lasse সমাধান অধিকার, কিন্তু আপনার সমস্যা সমাধানের জন্য অন্য উপায় আছে: টি-এসকিউএল অপারেটর LIKEঐচ্ছিক সংজ্ঞায়িত যেতে ESCAPE দফা, আপনি একটি চরিত্র যা প্যাটার্ন মধ্যে পরবর্তী অক্ষরে অব্যাহতি হবে ডিক্লেয়ার করতে দেয়।

আপনার ক্ষেত্রে, নীচের যেখানে বিধি সমতুল্য:

WHERE username LIKE '%[_]d';            -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';

42
ছবিটি সম্পূর্ণ করতে: ESCAPEধারাটি এসকিউএল স্ট্যান্ডার্ডের একটি অংশ এবং কেবল এসকিউএল সার্ভার নয়, যে কোনও ডিবিএমএস-এ কাজ করবে।
a_horse_with_no_name

2

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

select * from information_schema.columns 
where replace(table_name,'_','!') not like '%!%'
order by table_name


0

এগুলির কোনওটিই এসএসআইএস ভি 18.0-তে আমার পক্ষে কাজ করেনি, তাই আমি এরকম কিছু

WHERE CHARINDEX('_', thingyoursearching) < 1

করব : .. যেখানে আমি সেগুলিতে একটি আন্ডারস্কোর দিয়ে স্ট্রিংগুলি উপেক্ষা করার চেষ্টা করছি। আন্ডারস্কোরযুক্ত জিনিসগুলি যদি আপনি সন্ধান করতে চান তবে কেবল এটিকে প্রায় সরিয়ে দিন:

WHERE CHARINDEX('_', thingyoursearching) > 0

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.