Bạn nên thử truyền nó một cách rõ ràng bằng cách sử dụng CAST
hoặc CONVERT
hoạt động như bên dưới và không tính vào quá trình truyền ngầm.
SELECT * FROM test WHERE sample_col = cast('foo' as int);
(OR)
SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';
Hơn nữa, không có ích gì khi so sánh INT
nhập cột bằng string
giá trị và AFAIK, không có cài đặt nào như vậy để dừng truyền ngầm. nếu bạn thực sự muốn dẫn đến lỗi thay vì chuyển nó thành 0 thì hãy truyền nó một cách rõ ràng; trong trường hợp đó nó sẽ bị lỗi.
Xem Nhập Chuyển đổi trong Đánh giá Biểu thức Để biết thêm thông tin.