আমি কীভাবে আন্ডারস্কোর চরিত্রটি থেকে বাঁচবো?
আমি নীচের মতো কিছু লিখছি যেখানে ক্লজ এবং শেষে _ ডি দিয়ে প্রকৃত প্রবেশিকা সন্ধান করতে সক্ষম হতে চাই।
Where Username Like '%_d'
আমি কীভাবে আন্ডারস্কোর চরিত্রটি থেকে বাঁচবো?
আমি নীচের মতো কিছু লিখছি যেখানে ক্লজ এবং শেষে _ ডি দিয়ে প্রকৃত প্রবেশিকা সন্ধান করতে সক্ষম হতে চাই।
Where Username Like '%_d'
উত্তর:
টি-এসকিউএল রেফারেন্স লাইকের জন্য :
আপনি ওয়াইল্ডকার্ড প্যাটার্ন মিলিয়ে অক্ষরগুলিকে আক্ষরিক অক্ষর হিসাবে ব্যবহার করতে পারেন। একটি ওয়াইল্ডকার্ড অক্ষরকে আক্ষরিক চরিত্র হিসাবে ব্যবহার করতে, ওয়াইল্ডকার্ড অক্ষরটিকে বন্ধনীতে আবদ্ধ করুন। নিম্নলিখিত টেবিলটি লাইক কীওয়ার্ড এবং []] ওয়াইল্ডকার্ড অক্ষর ব্যবহারের কয়েকটি উদাহরণ দেখায়।
আপনার ক্ষেত্রে:
... LIKE '%[_]d'
একথাও ঠিক যে @Lasse সমাধান অধিকার, কিন্তু আপনার সমস্যা সমাধানের জন্য অন্য উপায় আছে: টি-এসকিউএল অপারেটর LIKE
ঐচ্ছিক সংজ্ঞায়িত যেতে ESCAPE দফা, আপনি একটি চরিত্র যা প্যাটার্ন মধ্যে পরবর্তী অক্ষরে অব্যাহতি হবে ডিক্লেয়ার করতে দেয়।
আপনার ক্ষেত্রে, নীচের যেখানে বিধি সমতুল্য:
WHERE username LIKE '%[_]d'; -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
ESCAPE
ধারাটি এসকিউএল স্ট্যান্ডার্ডের একটি অংশ এবং কেবল এসকিউএল সার্ভার নয়, যে কোনও ডিবিএমএস-এ কাজ করবে।
এটি আমার পক্ষে কাজ করেছিল, কেবল পালানো ব্যবহার করুন
'%\_%'
এগুলির কোনওটিই এসএসআইএস ভি 18.0-তে আমার পক্ষে কাজ করেনি, তাই আমি এরকম কিছু
WHERE CHARINDEX('_', thingyoursearching) < 1
করব : .. যেখানে আমি সেগুলিতে একটি আন্ডারস্কোর দিয়ে স্ট্রিংগুলি উপেক্ষা করার চেষ্টা করছি। আন্ডারস্কোরযুক্ত জিনিসগুলি যদি আপনি সন্ধান করতে চান তবে কেবল এটিকে প্রায় সরিয়ে দিন:
WHERE CHARINDEX('_', thingyoursearching) > 0