所以我有一个系统,管理员可以通过搜索用户输入的字符串并选择要搜索的列来查找行。
显然,如果我在几行中有一个INT列id = 0,它们都会在结果中弹出,无论字符串如何' bob'当转换为INT时将变为0,所以
WHERE id = 'bob'
将成为
WHERE id = 0
所以我得到了很多没有意义的结果。
我认为有一种方法可以阻止mysql停止隐式转换(除了它可能会破坏网站中其他地方的其他内容),但是还有另一种方法可以避免这种情况,因为知道所选列到搜索可以是INT还是STRING?或者有没有办法检测不兼容的类型并返回空结果集而不执行查询?