এসকিউএল: স্ট্রিং কীভাবে সম্পাদন করা যায় তা সমান হয় না


114

আমার নিম্নলিখিত জিজ্ঞাসা আছে

SELECT * FROM table
WHERE tester <> 'username';

আমি আশা করছি এটি পরীক্ষার স্ট্রিং নয় এমন সমস্ত ফলাফল ফিরিয়ে দেবে username, তবে এটি কাজ করছে না। আমি মনে করি আমি Likeঅপারেটরের বিপরীতটি খুঁজছি কিন্তু আমি নিশ্চিত নই? আমার অনুসন্ধানগুলিতে আমি সংখ্যার জন্য সমাধান পেয়েছি (সেখান থেকে আমি <> এখান থেকে পেয়েছি) তবে মনে হচ্ছে এটি স্ট্রিংয়ের সাথে কাজ করছে না।


5
মানগুলির সাথে NULLমানগুলি কী আপনার সমস্যা হচ্ছে ? ( NULL <> 'username' => NULL=> মিথ্যা)?
রিক্কেন

উত্তর:


174

আপনার whereধারাটি এমন সমস্ত সারি ফিরিয়ে দেবে যেখানে testerমেলে না usernameএবং যেখানে testerশূন্য নয়।

আপনি যদি NULL অন্তর্ভুক্ত করতে চান তবে চেষ্টা করুন:

where tester <> 'username' or tester is null

আপনি যদি স্ট্রিং হিসাবে "ব্যবহারকারীর নাম" শব্দটি ধারণ করে না এমন স্ট্রিংগুলি খুঁজছেন তবে likeতা ব্যবহার করা যেতে পারে:

where tester not like '%username%'

42

নিম্নলিখিত কোয়েরি চেষ্টা করুন

select * from table
where NOT (tester = 'username')

20

নাল-নিরাপদ অবস্থা দেখে মনে হবে:

select * from table
where NOT (tester <=> 'username')

হ্যাঁ !, এটিই আমার পক্ষে কাজ করে, কারণ আমার একটি শৃঙ্খল রয়েছে's <=> অপারেটরটি জানতেন না। ধন্যবাদ!
বর্ণা

কেবলমাত্র লক্ষ্য করা গেছে যে <=>অপারেটরটি MySQLবিশ্বে কেবলমাত্র বিদ্যমান , আরও তথ্যের জন্য দেখুন <=>
শীর্ষ-মাস্টার


7

strcompফাংশন এখানে উপযুক্ত হতে পারে (রিটার্ন 0 যখন স্ট্রিং অভিন্ন):

 SELECT * from table WHERE Strcmp(user, testername) <> 0;

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