Computer >> Máy Tính >  >> Lập trình >> MySQL

Thực hiện so sánh LIKE trong MySQL trên trường INT?

Bạn cần sử dụng phương thức cast () để thực hiện so sánh trên trường INT. Cú pháp như sau -

SELECT yourColumnName1,yourColumnName2,......N yourTableName WHERE CAST(yourColumnName as CHAR) LIKE ‘%yourIntegerValue%’;

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Sau đây là truy vấn để tạo bảng để thực hiện so sánh LIKE trên trường INT -

mysql> create table ComparisonOnIntField
   -> (
   -> StudentId int NOT NULL,
   -> StudentName varchar(20),
   -> StudentAge int
   -> );
Query OK, 0 rows affected (1.00 sec)

Chèn một số bản ghi trong bảng để thực hiện so sánh MySQL LIKE trên trường INT. Truy vấn để chèn bản ghi như sau -

mysql> insert into ComparisonOnIntField values(10,'Carol',24);
Query OK, 1 row affected (0.17 sec)

mysql> insert into ComparisonOnIntField values(12,'Bob',21);
Query OK, 1 row affected (0.18 sec)

mysql> insert into ComparisonOnIntField values(14,'Sam',23);
Query OK, 1 row affected (0.10 sec)

mysql> insert into ComparisonOnIntField values(16,'Mike',25);
Query OK, 1 row affected (0.26 sec)

mysql> insert into ComparisonOnIntField values(18,'John',27);
Query OK, 1 row affected (0.14 sec)

mysql> insert into ComparisonOnIntField values(20,'David',26);
Query OK, 1 row affected (0.15 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from ComparisonOnIntField;

Sau đây là kết quả.

+-----------+-------------+------------+
| 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)

Đây là truy vấn để thực hiện so sánh LIKE trong MySQL trên trường INT -

mysql> select StudentName,StudentAge from ComparisonOnIntField
    -> where cast(StudentId as CHAR) Like '%18%';

Sau đây là kết quả -

+-------------+------------+
| StudentName | StudentAge |
+-------------+------------+
| John        |         27 |
+-------------+------------+
1 row in set (0.05 sec)