আমার ডাটাবেসে আমার 2 টি টেবিল রয়েছে। একটি আদেশের জন্য, এবং একটি কোম্পানির জন্য।
অর্ডারগুলির এই কাঠামো রয়েছে:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
এবং কোম্পানির এই কাঠামো রয়েছে:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
অর্ডার সংস্থাগুলির নাম পেতে, আমি এই জাতীয় একটি কোয়েরি করতে পারি:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
এই ক্যোয়ারীটি ঠিকঠাক কাজ করে, তবে নিম্নলিখিত কোয়েরিটি কার্যকর করে না।
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
প্রথম ক্যোয়ারী দ্বিতীয়টি নয় কেন কাজ করে?
প্রথম ক্যোয়ারী ফেরত:
name
---------------
Company 1
Another Company
StackOverflow
দ্বিতীয় ক্যোয়ারী কেবল ফেরত দেয়:
name
---------------
Company 1
এটি কেন, প্রথম ক্যোয়ারী সমস্ত সংস্থাকে ফেরত দেয় কেন, তবে দ্বিতীয় ক্যোয়ারী কেবল প্রথমটিকে ফেরত দেয়?