Câu lệnh này trả về các hàng cho my_field = '13a'
:
SELECT * FROM my_table WHERE my_field=13
Vì MySQL thực hiện chuyển đổi kiểu từ chuỗi thành số trong quá trình so sánh, chuyển '13a'
thành 13
. Thông tin thêm về trong trang tài liệu này
.
Việc thêm dấu ngoặc kép sẽ biến số nguyên thành một chuỗi, vì vậy MySQL chỉ thực hiện so sánh chuỗi. Rõ ràng, '13'
không thể bằng '13a'
.
LIKE
mệnh đề luôn thực hiện so sánh chuỗi (trừ khi một trong các toán hạng là NULL
, trong trường hợp đó kết quả là NULL
).