Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tìm kiếm cột VARCHAR MySQL bằng số

Sử dụng hàm INSERT() của MySQL để chèn ký tự phân cách vào số, sau đó so sánh với cột VARCHAR.

Tham số của INSERT(str, position, number, str2):

Tham sốMô tả
strChuỗi gốc cần sửa đổi
positionVị trí chèn str2 (1-based)
numberSố ký tự thay thế (0 = chỉ chèn)
str2Chuỗi chèn vào

Tạo bảng demo

mysql> create table DemoTable (
    -> Code varchar(100)
    -> );
Query OK, 0 rows affected (0.82 sec)

Chèn dữ liệu có định dạng "số/số"

mysql> insert into DemoTable values('958575/98');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('765432/99');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('983456/91');
Query OK, 1 row affected (0.15 sec)

Hiển thị dữ liệu

mysql> select * from DemoTable;

Kết quả

+-----------+
| Code      |
+-----------+
| 958575/98 |
| 765432/99 |
| 983456/91 |
+-----------+
3 rows in set (0.00 sec)

Tìm kiếm bằng số nguyên 76543299 (chèn '/' tại vị trí 7)

mysql> select * from DemoTable where Code = INSERT(76543299, 7, 0, '/');

Kết quả - Tìm thấy '765432/99'

+-----------+
| Code      |
+-----------+
| 765432/99 |
+-----------+
1 row in set (0.00 sec)

Giải thích: INSERT(76543299, 7, 0, '/') lấy số 76543299, tại vị trí 7 chèn '/', không thay thế ký tự nào (number=0) → kết quả '765432/99'.

Cách khác phổ biến hơn: Chuyển đổi cột sang số để so sánh:

WHERE REPLACE(Code, '/', '') = '76543299'
Hoặc dùng CAST/CONVERT nếu định dạng cố định.