টি এল; ডিআর
এটি 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
অপারেটর