ALL/ANY
উত্তরগুলি বাড়াচ্ছে
অতিরিক্ত নোটগুলি (যেমন: নুল গুলি সম্পর্কে ) প্রশংসা করে আমি ফলাফলগুলি ব্যবহার করতে all
বা any
ফলাফলটি অর্জন করতে সমস্ত সমাধান পছন্দ করি । অন্য উত্সাহ হিসাবে, এই অপারেটরদের সম্পর্কে চিন্তা করার একটি উপায় এখানে।
আপনি তাদের সম্পর্কে শর্ট-সার্কিট অপারেটর হিসাবে ভাবতে পারেন :
all(array)
সরবরাহকারীর অপারেটরটি ব্যবহার করে রেফারেন্স মানটির সাথে প্রতিটি তুলনা করে অ্যারের সমস্ত মান দিয়ে যায়। তুলনা ফলানোর false
সাথে সাথে প্রক্রিয়াটি মিথ্যা দিয়ে শেষ হয়, অন্যথায় সত্য। (শর্ট সার্কিট যৌক্তিকের সাথে তুলনাযোগ্য and
))
any(array)
সরবরাহকারীর অপারেটরটি ব্যবহার করে রেফারেন্স মানটির সাথে প্রতিটি তুলনা করে অ্যারের সমস্ত মান দিয়ে যায়। তুলনা ফলানোর true
সাথে সাথে প্রক্রিয়াটি সত্যের সাথে শেষ হয়, অন্যথায় মিথ্যা। (শর্ট সার্কিট যৌক্তিকের সাথে তুলনাযোগ্য or
))
এ কারণেই 3 <> any('{1,2,3}')
কাঙ্ক্ষিত ফলাফল পাওয়া যায় না: প্রক্রিয়াটি অসমতার জন্য 3 এর সাথে 1 এর সাথে তুলনা করে, যা সত্য এবং তাত্ক্ষণিক সত্য ফিরে আসে। 3 টির চেয়ে আলাদা অ্যারেতে একটি একক মান পুরো শর্তটি সত্য করে তোলার জন্য যথেষ্ট। শেষ অ্যারে অবস্থানের 3টি প্রোব is ব্যবহার না.
3 <> all('{1,2,3}')
অন্যদিকে সমস্ত মান সমান নয় তা নিশ্চিত করে 3. এটি সামগ্রীর ফলাফল হিসাবে মিথ্যা ফিরিয়ে আনার জন্য মিথ্যা (এই ক্ষেত্রে সর্বশেষ) প্রদান করে এমন একটি উপাদান পর্যন্ত সত্য ফলনকারী সমস্ত তুলনার মধ্য দিয়ে চলবে। ওপি এটিই চায়।
WHERE 3 NOT IN recipient_ids
কাজ করে?