CONCAT() ফাংশন ব্যবহার করে, আমরা LIKE ক্লজে ব্যবহারকারী ভেরিয়েবলের সাথে কাজ করতে পারি। সিনট্যাক্স নিম্নরূপ।
set @anyVariableName='anyValue'; select yourColumnName1,yourColumnName2,yourColumnName3,...N from yourTableName whereyourColumnName like CONCAT('%', @anyVariableName, '%');
উপরের সিনট্যাক্স বোঝার জন্য প্রথমে একটি টেবিল তৈরি করা যাক। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ।
mysql> create table UserVariableInLike -> ( -> id int, -> Name varchar(100), -> Age int -> ); Query OK, 0 rows affected (0.83 sec)
সন্নিবেশ কমান্ড ব্যবহার করে টেবিলে রেকর্ড সন্নিবেশ করান। প্রশ্নটি নিম্নরূপ।
mysql> insert into UserVariableInLike values(101,'John',23); Query OK, 1 row affected (0.23 sec) mysql> insert into UserVariableInLike values(102,'John Smith',24); Query OK, 1 row affected (0.20 sec) mysql> insert into UserVariableInLike values(103,'Carol Smith',23); Query OK, 1 row affected (0.15 sec) mysql> insert into UserVariableInLike values(104,'Johnson',25); Query OK, 1 row affected (0.20 sec) mysql> insert into UserVariableInLike values(105,'Adam Smith',26); Query OK, 1 row affected (0.21 sec)
সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ
mysql> select *from UserVariableInLike;
নিচের আউটপুট।
+------+-------------+------+ | id | Name | Age | +------+-------------+------+ | 101 | John | 23 | | 102 | John Smith | 24 | | 103 | Carol Smith | 23 | | 104 | Johnson | 25 | | 105 | Adam Smith | 26 | +------+-------------+------+ 5 rows in set (0.00 sec)
এখানে একটি প্রশ্ন রয়েছে যা LIKE ক্লজে ব্যবহারকারী ভেরিয়েবল ব্যবহার করে। প্রশ্নটি নিম্নরূপ -
mysql> set @searchName='John'; Query OK, 0 rows affected (0.00 sec) mysql> select id,Name,Age from UserVariableInLike where Name like CONCAT('%', @searchName, '%');
নিচের আউটপুট।
+------+------------+------+ | id | Name | Age | +------+------------+------+ | 101 | John | 23 | | 102 | JohnSmith | 24 | | 104 | Johnson | 25 | +------+------------+------+ 3 rows in set (0.05 sec)