আপনি রেগুলার এক্সপ্রেশন (regexp) এর সাহায্যে IN() এর মত MySQL প্রয়োগ করতে পারেন। সিনট্যাক্স নিম্নরূপ -
select *from yourTableName where yourColumName regexp ‘value1|value2|value3……|valueN’;
উপরের যুক্তিটি বুঝতে, আপনাকে একটি টেবিল তৈরি করতে হবে। আসুন প্রথমে একটি টেবিল তৈরি করি -
mysql> create table INDemo -> ( -> Id int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.90 sec)
টেবিলে কিছু রেকর্ড ঢোকান। প্রশ্নটি নিম্নরূপ -
mysql> insert into INDemo values(100,'John'); Query OK, 1 row affected (0.13 sec) mysql> insert into INDemo values(104,'Carol'); Query OK, 1 row affected (0.18 sec) mysql> insert into INDemo values(108,'David'); Query OK, 1 row affected (0.19 sec) mysql> insert into INDemo values(112,'Smith'); Query OK, 1 row affected (0.12 sec) mysql> insert into INDemo values(116,'Johnson'); Query OK, 1 row affected (0.17 sec) mysql> insert into INDemo values(120,'Sam'); Query OK, 1 row affected (0.16 sec)
এখন আমরা SELECT স্টেটমেন্টের সাহায্যে সমস্ত রেকর্ড প্রদর্শন করতে পারি। প্রশ্নটি নিম্নরূপ -
INDemo থেকেmysql> select *from INDemo;
নিচের আউটপুট −
+------+---------+ | Id | Name | +------+---------+ | 100 | John | | 104 | Carol | | 108 | David | | 112 | Smith | | 116 | Johnson | | 120 | Sam | +------+---------+ 6 rows in set (0.00 sec)
Regexp ব্যবহার করুন যা IN() এর মত কাজ করে। আপনি উপরের সিনট্যাক্স প্রয়োগ করতে পারেন যা আমি শুরুতে আলোচনা করেছি। প্রশ্নটি নিম্নরূপ -
mysql> select *from INDemo where Id regexp '112|116|100';
নিচের আউটপুট −
+------+---------+ | Id | Name | +------+---------+ | 100 | John | | 112 | Smith | | 116 | Johnson | +------+---------+ 3 rows in set (0.21 sec)
আপনি IN() এর সাথে একই আউটপুট পাবেন। এখন, আসুন IN() এর সাহায্যে এটি পরীক্ষা করি। প্রশ্নটি নিম্নরূপ -
mysql> select *from INDemo where Id IN(112,116,100);
এখানে আউটপুট
+------+---------+ | Id | Name | +------+---------+ | 100 | John | | 112 | Smith | | 116 | Johnson | +------+---------+ 3 rows in set (0.00 sec)
আপনি উপরের আউটপুটে দেখতে পাচ্ছেন, আমরা একই ফলাফল পাচ্ছি।