টি এল; ডিআর
এটি NULLনিরাপদ সমান অপারেটর।
নিয়মিত =অপারেটরের মতো , দুটি মান তুলনা করা হয় এবং ফলাফলটি হয় 0(সমান নয়) বা 1(সমান); অন্য কথায়: 'a' <=> 'b'ফলন 0এবং 'a' <=> 'a'ফলন 1।
নিয়মিত =অপারেটরের বিপরীতে , মানগুলির NULLএকটি বিশেষ অর্থ হয় না এবং তাই এটি কোনও NULLসম্ভাব্য ফলাফল হিসাবে কখনই ফল দেয় না ; সুতরাং: 'a' <=> NULLফলন 0এবং NULL <=> NULLফলন 1।
কাজেরতা
এটি কার্যকর হতে পারে যখন উভয় অপারেন্ডে থাকতে পারে NULLএবং আপনার দুটি কলামের মধ্যে একটি সামঞ্জস্যপূর্ণ তুলনা ফলাফল প্রয়োজন need
আর একটি ব্যবহারের ক্ষেত্রে প্রস্তুত বিবৃতি আছে, উদাহরণস্বরূপ:
... WHERE col_a <=> ? ...
এখানে, স্থানধারক হয় একটি স্কেলারের মান হতে পারে বা NULLকোয়েরি সম্পর্কে কোনও পরিবর্তন না করেই হতে পারে।
সম্পর্কিত অপারেটর
এছাড়াও <=>আরও দুটি অপারেটর রয়েছে যা তুলনা করতে ব্যবহার করা যেতে পারে NULL, যথা IS NULLএবং IS NOT NULL; তারা এএনএসআই স্ট্যান্ডার্ডের একটি অংশ এবং তাই অন্য ডাটাবেসে সমর্থিত, এর বিপরীতে <=>যা মাইএসকিউএল-নির্দিষ্ট।
আপনি এগুলি মাইএসকিউএল এর বিশেষত্ব হিসাবে ভাবতে পারেন <=>:
'a' IS NULL ==> 'a' <=> NULL
'a' IS NOT NULL ==> NOT('a' <=> NULL)
এর ভিত্তিতে, আপনার নির্দিষ্ট ক্যোয়ারী (টুকরা) আরও পোর্টেবলে রূপান্তর করা যেতে পারে:
WHERE p.name IS NULL
সমর্থন
এসকিউএল: 2003 স্ট্যান্ডার্ড এটির জন্য একটি প্রিকিট চালু করেছিল, যা <=>নিচের ফর্মটিতে ঠিক মাইএসকিউএল'র অপারেটরের মতো কাজ করে :
IS [NOT] DISTINCT FROM
নিম্নলিখিতটি সর্বজনীনভাবে সমর্থিত তবে এটি আপেক্ষিক জটিল:
CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
THEN 1
ELSE 0
END = 1
spaceshipঅপারেটর