MySQL-এ ইন্টিজার (INT) কলামে LIKE অপারেটর ব্যবহার করতে হলে কলামটি CAST(... AS CHAR) দিয়ে ক্যারেক্টারে রূপান্তর করতে হয়।
সিনট্যাক্স
SELECT yourColumnName1, yourColumnName2, ... FROM yourTableName WHERE CAST(yourColumnName AS CHAR) LIKE '%yourIntegerValue%';
উদাহরণ
টেবিল তৈরি করি:
mysql> create table ComparisonOnIntField
-> (
-> StudentId int NOT NULL,
-> StudentName varchar(20),
-> StudentAge int
-> ); Query OK, 0 rows affected (1.00 sec)
রেকর্ড যোগ করি:
mysql> insert into ComparisonOnIntField values(10,'Carol',24); mysql> insert into ComparisonOnIntField values(12,'Bob',21); mysql> insert into ComparisonOnIntField values(14,'Sam',23); mysql> insert into ComparisonOnIntField values(16,'Mike',25); mysql> insert into ComparisonOnIntField values(18,'John',27); mysql> insert into ComparisonOnIntField values(20,'David',26);
সকল রেকর্ড
mysql> select *from ComparisonOnIntField;
আউটপুট
+-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 10 | Carol | 24 | | 12 | Bob | 21 | | 14 | Sam | 23 | | 16 | Mike | 25 | | 18 | John | 27 | | 20 | David | 26 | +-----------+-------------+------------+ 6 rows in set (0.00 sec)
INT কলামে LIKE ব্যবহার (StudentId যেন 18 ধারণ করে)
mysql> select StudentName, StudentAge from ComparisonOnIntField WHERE CAST(StudentId AS CHAR) LIKE '%18%';
ফলাফল
+-------------+------------+ | StudentName | StudentAge | +-------------+------------+ | John | 27 | +-------------+------------+ 1 row in set (0.05 sec)
টিপ: বড় টেবিলে CAST() ব্যবহার করলে ইনডেক্স কাজ করে না। পারফরম্যান্সের জন্য যেন সম্ভব হোক সংখ্যা রেঞ্জ (BETWEEN) বা স্ট্রিং কলাম আলাদা রাখা ভালো।