防止在WHERE子句中隐式转换或检测不兼容的格式

时间:2015-02-28 17:07:50

标签: mysql

所以我有一个系统,管理员可以通过搜索用户输入的字符串并选择要搜索的列来查找行。

显然,如果我在几行中有一个INT列id = 0,它们都会在结果中弹出,无论字符串如何' bob'当转换为INT时将变为0,所以

WHERE id = 'bob'

将成为

WHERE id = 0

所以我得到了很多没有意义的结果。

我认为有一种方法可以阻止mysql停止隐式转换(除了它可能会破坏网站中其他地方的其他内容),但是还有另一种方法可以避免这种情况,因为知道所选列到搜索可以是INT还是STRING?或者有没有办法检测不兼容的类型并返回空结果集而不执行查询?

0 个答案:

没有答案