এসকিউএল এ বিদ্যমান এবং IN এর মধ্যে পার্থক্য?


443

এসকিউএল-তে EXISTSএবং INধারাটির মধ্যে পার্থক্য কী ?

আমাদের কখন ব্যবহার করা উচিত EXISTSএবং কখন ব্যবহার করা উচিত IN?

উত্তর:


224

existsশব্দ যে ভাবে ব্যবহার করা যেতে পারে, কিন্তু সত্যিই এটা এড়ানোর কাউন্টিং করার জন্য একটি উপায় হিসেবে উদ্দীষ্ট এমন:

--this statement needs to check the entire table
select count(*) from [table] where ...

--this statement is true as soon as one match is found
exists ( select * from [table] where ... )

এটি সর্বাধিক কার্যকর যেখানে আপনার ifশর্তাধীন বিবৃতি রয়েছে, তার existsচেয়ে অনেক বেশি দ্রুত হতে পারে count

inসেরা ব্যবহৃত তুমি কোথায় একটি স্ট্যাটিক তালিকা পাস করতে হবে হয়:

 select * from [table]
 where [field] in (1, 2, 3)

আপনি যখন কোনও inবিবৃতিতে একটি টেবিল রাখেন তখন এটি ব্যবহার করা আরও বোধগম্য হয় joinতবে বেশিরভাগ ক্ষেত্রে এটি কোনও বিষয় নয়। ক্যোয়ারী অপটিমাইজারের একই পরিকল্পনাটি কোনওভাবেই ফিরিয়ে দেওয়া উচিত। কিছু বাস্তবায়নে (বেশিরভাগ পুরানো, যেমন মাইক্রোসফ্ট এসকিউএল সার্ভার 2000) inকোয়েরিগুলি সর্বদা নেস্টেড জয়েন প্ল্যান পাবে, যখন joinকোয়েরিগুলি নেস্টেড, মার্জ বা হ্যাশ উপযুক্ত হিসাবে ব্যবহার করবে । আরও আধুনিক বাস্তবায়ন বুদ্ধিমান এবং inব্যবহার করার পরেও পরিকল্পনাটি সামঞ্জস্য করতে পারে ।


2
"আপনি যখন বিবৃতিতে কোনও টেবিল রাখেন তখন এটি একটি যোগদানের ব্যবহারটি আরও বোধগম্য করে তোলে তবে এটি সত্যিকার অর্থে কিছু যায় আসে না The ক্যোয়ারী অপ্টিমাইজার উভয় উপায়ে একই পরিকল্পনা ফেরত দেবে।" ক্যোয়ারী অপটিমাইজার অংশ নয়, সেই অংশটি যেখানে আপনি JOINপ্রতিস্থাপন হিসাবে ব্যবহার করতে পারেন IN
farthVader

select * from [table] where [field] in (select [field] from [table2])হিসাবে একই ফলাফল (এবং ক্যোয়ারী পরিকল্পনা) প্রদান করে select * from [table] join [table2] on [table2].[field] = [table].[field]

@ স্যান্ডার এটি দেয় না: প্রথম ক্যোয়ারী সমস্ত কলাম থেকে ফিরিয়ে দেয় table, যখন দ্বিতীয়টি সমস্ত কিছু থেকে tableএবং ফিরে আসে table2। কিছু (বেশিরভাগ পুরানো) এসকিউএল ডেটাবেজে inকোয়েরিটি নেস্টেড জয়েন হিসাবে প্রয়োগ করা হবে, যখন joinকোয়েরিটি নীস্ট করা, মার্জ করা, হ্যাশ করা ইত্যাদি হতে পারে - যাই হোক না কেন দ্রুত।
কিথ

2
ঠিক আছে, আমার নির্বাচিত ধারাটিতে নির্দিষ্ট কলামগুলি থাকা উচিত, তবে আপনার উত্তরটি আপডেট করা উচিত কারণ এটি পরিষ্কারভাবে জানিয়েছে যে প্রশ্নগুলি "যেভাবেই একই পরিকল্পনা ফিরিয়ে দেবে"।

existsকেস স্টেটমেন্টের মধ্যে ব্যবহার করা যেতে পারে, সুতরাং select case when exists (select 1 from emp where salary > 1000) then 1 else 0 end as sal_over_1000
সেগুলিও সেভাবে কার্যকর

125

EXISTSআপনাকে জিজ্ঞাসা করবে যে কোনও ক্যোয়ারির কোনও ফলাফল ফিরে এসেছে কিনা। উদাহরণ:

SELECT * 
FROM Orders o 
WHERE EXISTS (
    SELECT * 
    FROM Products p 
    WHERE p.ProductNumber = o.ProductNumber)

IN একের মানকে বিভিন্নের সাথে তুলনা করতে ব্যবহৃত হয় এবং আক্ষরিক মানগুলি ব্যবহার করতে পারে:

SELECT * 
FROM Orders 
WHERE ProductNumber IN (1, 10, 100)

আপনি ক্লোজের সাথে কোয়েরির ফলাফলগুলিও এর INমতো ব্যবহার করতে পারেন :

SELECT * 
FROM Orders 
WHERE ProductNumber IN (
    SELECT ProductNumber 
    FROM Products 
    WHERE ProductInventoryQuantity > 0)

3
শেষ ক্যোয়ারী বিপজ্জনক কারণ এটি সাবস্ক্রাইয়ের কোনও ফল দেয় না ক্ষেত্রে ব্যর্থ হতে পারে। 'ইন'
ধারাটিতে

40
@ ব্যবহারকারী2054927 শেষ জিজ্ঞাসাটি সঠিকভাবে কোনও সারি ফেরত দেবে না যদি সাবকিউরি কোনও সারি না ফেরায় - সে সম্পর্কে বিপজ্জনক কোনও কিছুই নয়!
টনি অ্যান্ড্রুজ


81

নিয়ম অপ্টিমাইজারের উপর ভিত্তি করে :

  • EXISTS তুলনায় অনেক দ্রুত INসাব-কোয়েরির ফলাফলগুলি খুব বড় হলে তার ।
  • INEXISTSউপ-ক্যোয়ারির ফলাফলগুলি খুব কম হলে তার চেয়ে দ্রুততর হয়।

ব্যয় অপ্টিমাইজারের উপর ভিত্তি করে :

  • এখানে কোন পার্থক্য নেই.

21
আপনার যুক্তির প্রমাণ? আমি মনে করি না যে পূর্বের থেকে বর্তমানের চেয়ে দ্রুততর হবে!
নওয়াজ

22
@ নাওয়াজ কীভাবে প্রমাণ পাবেন যে কেন সবসময় উপস্থিতি থেকে আস্তে আস্তে থাকে?
ceving

2
খারাপভাবে প্রয়োগ করা কোয়েরি অপ্টিমাইজার? আমি একটি নির্দিষ্ট আরডিবিএমগুলিতে এরকম কিছু ঘটেছে (যদিও ঠিক এই পরিস্থিতিটি ঘটছে না) বলে মনে হচ্ছে ...
হ্যারল্ডো_ওক

1
বিদ্যমানগুলি বিশুদ্ধভাবে বুলিয়ান মানগুলি প্রদান করে, যা বিআইটি / বুলিয়ান প্রকারের চেয়ে বড় স্ট্রিং বা মানগুলির তুলনা করার চেয়ে সবসময় দ্রুত। IN বা বুলিয়ান তুলনা হতে পারে। যেহেতু প্রোগ্রামিং স্থিতিশীলতার জন্য এক্সপ্লিট ব্যবহার পছন্দ করে (এসিডের অংশ), তাই সাধারণত উপস্থিতি পছন্দ করা হয়।
clifton_h

2
কেন এতবার উপার্জন করা হয়েছিল? এই অনুমান-ভিত্তিক বিবৃতিটি সাধারণত সত্য হওয়া উচিত এর কোনও কারণ নেই।
লুকাশ এদার

40

আমি ধরে নিচ্ছি যে তারা কী করে তা আপনার জানা আছে, এবং এভাবে অন্যভাবে ব্যবহৃত হয়, সুতরাং আমি আপনার প্রশ্নটি বুঝতে যাচ্ছি: এসকিউএলকে অস্তিত্বের পরিবর্তে IN ব্যবহার করার জন্য কখনই নতুন করে লেখা ভাল হবে বা এর বিপরীতে।

এটা কি ন্যায্য ধারণা?


সম্পাদন করা : যে কারণটি আমি জিজ্ঞাসা করছি তা হ'ল আপনি অনেক ক্ষেত্রে IN এর উপর ভিত্তি করে একটি এসকিউএল পুনরায় লিখতে পারেন পরিবর্তে একটি EXISTS ব্যবহার করতে এবং এর বিপরীতে এবং কিছু ডাটাবেস ইঞ্জিনের জন্য ক্যোয়ারী অপ্টিমাইজার দুটি পৃথকভাবে আচরণ করবে।

এই ক্ষেত্রে:

SELECT *
FROM Customers
WHERE EXISTS (
    SELECT *
    FROM Orders
    WHERE Orders.CustomerID = Customers.ID
)

এতে নতুন করে লেখা যেতে পারে:

SELECT *
FROM Customers
WHERE ID IN (
    SELECT CustomerID
    FROM Orders
)

বা যোগদানের সাথে:

SELECT Customers.*
FROM Customers
    INNER JOIN Orders ON Customers.ID = Orders.CustomerID

সুতরাং আমার প্রশ্নটি এখনও দাঁড়িয়ে আছে, মূল পোস্টারটি কী কী সম্পর্কে এবং অস্তিত্ব সম্পর্কে কী ভেবে অবাক হয়, এবং কীভাবে এটি ব্যবহার করবেন, অথবা তিনি পরিবর্তিত একটি এসকিউএল পুনরায় লেখার জন্য উপস্থিত ব্যবহার করতে ব্যবহার করবেন অথবা এর বিপরীতে, একটি ভাল ধারণা হবে?


12
আমি ওপি সম্পর্কে জানি না, তবে আমি এই প্রশ্নের উত্তর চাই! আইডি ফেরত দেওয়া এমন একটি সাবকিউয়ের সাথে আইএন এর পরিবর্তে আমার কখন উপস্থিত থাকতে হবে?
রায় টিঙ্কার

8
এর মধ্যে আপনার JOINএকটি দরকার হবেDISTINCT
জায়েদার

4
দুর্দান্ত বিক্ষোভ, কিন্তু বেশিরভাগ ক্ষেত্রেই প্রশ্নটি
উত্তরহীন

28
  1. EXISTSINsubquery ফলাফল খুব বড় যখন তুলনায় অনেক দ্রুত । subquery ফলাফল খুব ছোট যখন
    INচেয়ে দ্রুত EXISTS

    CREATE TABLE t1 (id INT, title VARCHAR(20), someIntCol INT)
    GO
    CREATE TABLE t2 (id INT, t1Id INT, someData VARCHAR(20))
    GO
    
    INSERT INTO t1
    SELECT 1, 'title 1', 5 UNION ALL
    SELECT 2, 'title 2', 5 UNION ALL
    SELECT 3, 'title 3', 5 UNION ALL
    SELECT 4, 'title 4', 5 UNION ALL
    SELECT null, 'title 5', 5 UNION ALL
    SELECT null, 'title 6', 5
    
    INSERT INTO t2
    SELECT 1, 1, 'data 1' UNION ALL
    SELECT 2, 1, 'data 2' UNION ALL
    SELECT 3, 2, 'data 3' UNION ALL
    SELECT 4, 3, 'data 4' UNION ALL
    SELECT 5, 3, 'data 5' UNION ALL
    SELECT 6, 3, 'data 6' UNION ALL
    SELECT 7, 4, 'data 7' UNION ALL
    SELECT 8, null, 'data 8' UNION ALL
    SELECT 9, 6, 'data 9' UNION ALL
    SELECT 10, 6, 'data 10' UNION ALL
    SELECT 11, 8, 'data 11'
  2. প্রশ্ন ঘ

    SELECT
    FROM    t1 
    WHERE   not  EXISTS (SELECT * FROM t2 WHERE t1.id = t2.t1id)

    প্রশ্ন 2

    SELECT t1.* 
    FROM   t1 
    WHERE  t1.id not in (SELECT  t2.t1id FROM t2 )

    যদি t1আপনার আইডিতে নাল মান থাকে তবে কোয়েরি 1 এগুলি খুঁজে পাবে, কিন্তু ক্যোয়ারি 2 ক্যান্ট নাল প্যারামিটারগুলি খুঁজে পাবে।

    আমি বলতে চাইছি INনলের সাথে কোনও তুলনা করতে পারছি না, সুতরাং এটি শূন্যের জন্য কোনও ফল দেয় EXISTSনা , তবে নলের সাথে সমস্ত কিছু তুলনা করতে পারে।


এই উত্তরটি টম ঘুড়ির অনুভূতির যুক্তিসঙ্গত সংক্ষিপ্তসার ( Asktom.oracle.com/pls/asktom/… )
ফরাসি

আমি মনে করি এই উত্তর অন্তর্দৃষ্টি উপর ভিত্তি করে, যা যথেষ্ট ন্যায্য। তবে এটি সর্বজনীন সত্য হতে পারে না। উদাহরণস্বরূপ, এটি প্রায় অবশ্যই ইঙ্গ্রেসের ক্ষেত্রে সত্য নয় , এটি একই কোয়েল ক্যোয়ারী হিসাবে সমান এসকিউএল কোয়েরি উভয়কেই বিশ্লেষণ করবে যা এসকিউএল - অহেম - 'সমৃদ্ধি' এর অভাব যখন একই জিনিস একাধিক উপায়ে লেখার ক্ষেত্রে আসে।
onedaywhen

এই 2 টি প্রশ্নের যুক্তিগতভাবে সমতুল্য হয় এবং কেবল যদি t2.id "নট নুল" হিসাবে সংজ্ঞায়িত করা হয়। টেবিল সংজ্ঞায় কোনও নির্ভরতার সাথে সমতাটি প্রদানের জন্য ২ য় কোয়েরিটি "নির্বাচন করুন t1। * টি -1 থেকে যেখানে t1.id নেই (t2.id থেকে t2.id নির্বাচন করুন যেখানে t2.id নাল নয় )"
ডেভিড דודו মার্কোভিটস

16

আপনি যদি INঅপারেটরটি ব্যবহার করছেন তবে এসকিউএল ইঞ্জিন অভ্যন্তরীণ কোয়েরি থেকে প্রাপ্ত সমস্ত রেকর্ড স্ক্যান করবে। অন্যদিকে আমরা যদি ব্যবহার করি EXISTSতবে এসকিউএল ইঞ্জিনটি কোনও মিল খুঁজে পাওয়ার সাথে সাথে স্ক্যানিং প্রক্রিয়াটি বন্ধ করে দেবে।


10

ইন শুধুমাত্র সমতা সম্পর্ক (অথবা বৈষম্য যখন পূর্বে সমর্থন নয় )।
এটি = যেকোন / = কিছু প্রতিশব্দ , যেমন

select    * 
from      t1 
where     x in (select x from t2)
;

উপস্থিতি বিভিন্ন ধরণের সম্পর্কের সমর্থন করে, যা IN ব্যবহার করে প্রকাশ করা যায় না - যেমন -

select    * 
from      t1 
where     exists (select    null 
                  from      t2 
                  where     t2.x=t1.x 
                        and t2.y>t1.y 
                        and t2.z like '℅' || t1.z || '℅'
                  )
;

এবং অন্য একটি নোটে -

EXISTS এবং IN এর মধ্যে কথিত পারফরম্যান্স এবং প্রযুক্তিগত পার্থক্য নির্দিষ্ট বিক্রেতার বাস্তবায়ন / সীমাবদ্ধতা / বাগগুলির ফলে হতে পারে, তবে অনেক সময় তারা ডেটাবেসগুলির অভ্যন্তরীণতাগুলি না বোঝার কারণে তৈরি করা মিথ ছাড়া আর কিছুই নয়।

সারণিগুলির সংজ্ঞা, পরিসংখ্যানের যথার্থতা, ডাটাবেস কনফিগারেশন এবং অপ্টিমাইজারের সংস্করণগুলি কার্যকরভাবে কার্যকর করার পরিকল্পনায় এবং তাই কার্য সম্পাদন মেট্রিকগুলিতে সমস্ত প্রভাব ফেলে have


পারফরম্যান্স সম্পর্কে আপনার মন্তব্যের জন্য উত্সাহ দিন: একটি নির্দিষ্ট ডিবিএমএসের উপর মনোনিবেশ না করে আমাদের ধরে নেওয়া উচিত যে সর্বোত্তম কী কাজ করে তা কাজ করা অপ্টিমাইজারের উপর নির্ভরশীল।
মানংগো

9

Existsশব্দ সত্য বা মিথ্যা মূল্যায়ণ কিন্তু INশব্দ সংশ্লিষ্ট সাব ক্যোয়ারী কলামে সব মান তুলনা করুন। কমান্ড Select 1সহ আরও একটি ব্যবহার করা যেতে পারে Exists। উদাহরণ:

SELECT * FROM Temp1 where exists(select 1 from Temp2 where conditions...)

তবে INএতো Existsদ্রুত কম দক্ষ ।


5

আমি মনে করি,

  • EXISTSযখন আপনার প্রশ্নের ফলাফলগুলি অন্য সাবকিউয়ের সাথে মেলে প্রয়োজন। সাবকিউরি ফলাফল যেখানে মেলে সেখানে ক্যোয়ারী # 1 ফলাফল পুনরুদ্ধার করা দরকার। এক ধরনের যোগদান করুন .. উদাহরণস্বরূপ গ্রাহকদের টেবিল নির্বাচন করুন # 1 যারা অর্ডার টেবিল # 2ও রেখেছেন

  • যদি কোনও নির্দিষ্ট কলামের মান INএকটি তালিকা (1,2,3,4,5) থাকে তবে পুনরুদ্ধার করতে হবে Eg উদাহরণস্বরূপ গ্রাহক যারা নীচের জিপকোডে অর্থাৎ জিপ_কোড মান (....) তালিকায় থাকে তাদের নির্বাচন করুন।

কখন অন্যের উপরে ব্যবহার করবেন ... যখন আপনি মনে করেন এটি যথাযথভাবে পড়েছে (উদ্দেশ্যটি আরও ভালভাবে যোগাযোগ করে)।


4

পার্থক্য এখানে নিহিত:

select * 
from abcTable
where exists (select null)

উপরের ক্যোয়ারী সমস্ত রেকর্ড ফিরিয়ে দেবে যখন নীচে একটি খালি ফিরে আসবে।

select *
from abcTable
where abcTable_ID in (select null)

এটি ব্যবহার করে দেখুন এবং আউটপুটটি পর্যবেক্ষণ করুন।


1
হুঁ ... ত্রুটি: [SQL0104] টোকেন) বৈধ ছিল না। উভয় ক্ষেত্রেই. আপনি কি কোনও বিশেষ আরডিবিএমএস ধরে নিচ্ছেন?
jmarkmurphy

3

আমার জ্ঞান অনুসারে যখন একটি subquery একটি NULLমান প্রদান করে তখন পুরো বিবৃতি হয়ে যায় NULL। সেক্ষেত্রে আমরা EXITSকীওয়ার্ডটি ব্যবহার করছি । আমরা যদি সাবকিউরিতে নির্দিষ্ট মানগুলি তুলনা করতে চাই তবে আমরা INকীওয়ার্ডটি ব্যবহার করছি ।


3

কোনটি দ্রুততর তা অভ্যন্তরীণ ক্যোয়ারী দ্বারা প্রাপ্ত ক্যোয়ারীর সংখ্যার উপর নির্ভর করে:

  • যখন আপনার অভ্যন্তরীণ কোয়েরিটি হাজার হাজার সারি আনছে তখন উপস্থিতি বাছাই করা ভাল পছন্দ
  • যখন আপনার অভ্যন্তরীণ কোয়েরিটি কয়েকটি সারি আনছে, তখন IN দ্রুত হবে

বিদ্যমান বা সত্যের উপর মূল্যায়ন করুন তবে একাধিক মানের তুলনা করুন। যখন আপনি জানেন না যে রেকর্ডটি বিদ্যমান আছে বা নেই, আপনার উপস্থিতি বেছে নেওয়া উচিত


3

কারণটি হ'ল এক্সআইএসটিএস অপারেটর "অন্তত পাওয়া" নীতিটির ভিত্তিতে কাজ করে। এটি সত্য প্রত্যাবর্তন করে এবং একবারে কমপক্ষে একটি মিলের সারি পাওয়া গেলে স্ক্যানিং টেবিলটি থামিয়ে দেয়।

অন্যদিকে, আইএন অপারেটরটি যখন সাবকিউয়ের সাথে একত্রিত হয়, তখন মাইএসকিউএলকে অবশ্যই সাবউয়েরিটি প্রথমে প্রক্রিয়া করা উচিত এবং তারপরে পুরো ক্যোয়ারী প্রক্রিয়া করতে সাব-কোয়ের ফলাফলটি ব্যবহার করে।

থাম্বের সাধারণ নিয়মটি হ'ল যদি সাবকিউরিতে একটি বিশাল পরিমাণের ডেটা থাকে তবে এক্সআইএসটিএস অপারেটর আরও ভাল পারফরম্যান্স সরবরাহ করে।

যাইহোক, আইএন অপারেটর ব্যবহার করে এমন ক্যোয়ারী দ্রুত উপস্থাপন করবে যদি সাবকোয়ারি থেকে ফলাফল সেটটি খুব ছোট হয়।


1

আমার বোধগম্যতা উভয়ই সমান হওয়া উচিত যতক্ষণ না আমরা NULL মানগুলি নিয়ে কাজ করি না।

কেন ক্যোয়ারী = NULL বনামের মানটি ফেরত দেয় না কেন একই কারণটি হল NULL। http://sqlinthewild.co.za/index.php/2010/02/18/not-exists-vs-not-in/

বুলিয়ান বনাম তুলনামূলক যুক্তি হিসাবে, একটি বুলিয়ান উত্পন্ন করতে উভয় মানের তুলনা করা দরকার এবং শর্তটি যদি কাজ করে তবে তা কোনওরকম হয় o সুতরাং আমি কীভাবে IN ও বিদ্যমান থাকা অন্যরকম আচরণ করে তা বুঝতে ব্যর্থ।



0

যদি একটি subquery একাধিক মান ফেরত, আপনি বহির্মুখী ক্যোয়ারী চালানো প্রয়োজন হতে পারে- শর্তে নির্দিষ্ট কলামের মধ্যে মান subquery ফলাফল ফলাফলের কোনও মান মেলে যদি। এই কাজটি সম্পাদন করতে আপনার inকীওয়ার্ডটি ব্যবহার করতে হবে ।

রেকর্ডগুলির একটি সেট বিদ্যমান কিনা তা পরীক্ষা করতে আপনি একটি সাবকিউরি ব্যবহার করতে পারেন। এই জন্য, আপনি existsএকটি subquery সঙ্গে ধারা ব্যবহার করা প্রয়োজন । existsশব্দ সবসময় সত্য বা মিথ্যা মান ফিরে।


0

আমি বিশ্বাস করি এর একটি সরল উত্তর আছে। আপনি তাদের সিস্টেমে এই ফাংশনটি বিকাশকারী লোকদের কাছ থেকে কেন তা পরীক্ষা করেন না?

আপনি যদি এমএস এসকিউএল বিকাশকারী হন তবে সরাসরি মাইক্রোসফ্টের উত্তর এখানে।

IN:

একটি নির্দিষ্ট মান সাবকোয়ারি বা তালিকার কোনও মানের সাথে মেলে কিনা তা নির্ধারণ করে।

EXISTS:

সারিগুলির অস্তিত্বের জন্য পরীক্ষা করার জন্য একটি সাবকোয়ারি নির্দিষ্ট করে।


0

আমি দেখতে পেলাম যে উপস্থিত কীওয়ার্ড ব্যবহার করা প্রায়শই সত্যিই ধীর হয় (এটি মাইক্রোসফ্ট অ্যাক্সেসে খুব সত্য)। পরিবর্তে আমি এই পদ্ধতিতে জোড় অপারেটরটি ব্যবহার করি: এসকিএল-তে-কী-ওয়ার্ড-কি-ওয়ার্ডটি থাকা উচিত


-1

উপস্থিতিগুলি IN এর চেয়ে আরও দ্রুত পারফরম্যান্সে রয়েছে। যদি ফিল্টারের বেশিরভাগ মানদণ্ড সাবকিউরিতে থাকে তবে IN ব্যবহার করা ভাল এবং যদি ফিল্টারের বেশিরভাগ মানদণ্ড মূল প্রশ্নের মধ্যে থাকে তবে উপস্থিতি ব্যবহার করা আরও ভাল।


এই দাবিটি আসলে কোনও প্রমাণ সমর্থন করে না, তাই না?
লুকাশ এদার

-2

আপনি যদি IN অপারেটরটি ব্যবহার করে থাকেন তবে এসকিউএল ইঞ্জিন অভ্যন্তরীণ কোয়েরি থেকে প্রাপ্ত সমস্ত রেকর্ড স্ক্যান করবে। অন্যদিকে আমরা যদি উপস্থিত থাকা ব্যবহার করি তবে এসকিউএল ইঞ্জিনটি কোনও মিল খুঁজে পাওয়ার সাথে সাথে স্ক্যানিং প্রক্রিয়াটি বন্ধ করে দেবে।


@ জিগি ব্যাখ্যা কর? এটি গ্রহণযোগ্য উত্তর যা বলেছিল তা অনেকটাই। প্রতিটি একক রেকর্ড চেক করা আবশ্যক, এটি কেবলমাত্র একটি খুঁজে পাওয়ার সাথে সাথে উপস্থিতগুলি থামতে পারে can
বেন থারলি

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