সমস্যা
IN() কমা-বিভক্ত স্ট্রিং কলামের সাথে কাজ করে না। FIND_IN_SET() এই কাজের জন্য তৈরি।
সারণি ও ডেটা
mysql> create table DemoTable1423 (CountryName varchar(100));
mysql> insert into DemoTable1423 values('AUS,UK'),('US'),('AUS,UK,US');
কোয়েরি
mysql> select * from DemoTable1423 where find_in_set('US', CountryName);
ফলাফল
+-------------+ | CountryName | +-------------+ | US | | AUS,UK,US | +-------------+
ব্যাখ্যা
FIND_IN_SET('US', CountryName)— 'US' স্ট্রিংটি CountryName-এ কমা-বিভক্তভাবে আছে কিনা চেক করে- প্রথম সারি 'AUS,UK'-এ 'US' নাই, তাই বাদ
- দ্বিতীয় সারি শুধু 'US', তাই মিলে
- তৃতীয় সারি 'AUS,UK,US'-এ 'US' আছে, তাই মিলে
সীমাবদ্ধতা: মানগুলোর মধ্যে কমা থাকলে কাজ করবে না। সেক্ষেত্রে JSON বা নর্মালাইজড টেবিল ব্যবহার করুন।