Cột số không thể dùng LIKE trực tiếp. Phải ép kiểu sang chuỗi bằng CAST(cot AS CHAR) hoặc CONCAT(cot, '').
Cú pháp
SELECT cot1, cot2, ...
FROM ten_bang
WHERE CAST(cot_so AS CHAR) LIKE '%gia_tri_so%';
Ví dụ minh họa
Tạo bảng ComparisonOnIntField:
CREATE TABLE ComparisonOnIntField (
StudentId INT NOT NULL,
StudentName VARCHAR(20),
StudentAge INT
);
INSERT INTO ComparisonOnIntField VALUES
(10,'Carol',24), (12,'Bob',21), (14,'Sam',23),
(16,'Mike',25), (18,'John',27), (20,'David',26);
Tìm StudentId chứa '18'
SELECT StudentName, StudentAge
FROM ComparisonOnIntField
WHERE CAST(StudentId AS CHAR) LIKE '%18%';
Kết quả:
+-------------+------------+
| StudentName | StudentAge |
+-------------+------------+
| John | 27 |
+-------------+------------+
Hiệu năng: CAST làm mất index trên cột số. Nên dùng so sánh số trực tiếp (=, BETWEEN, IN) nếu có thể. Chỉ dùng LIKE trên số khi bắt buộc (tìm pattern trong ID phức tạp, v.v.).