Mysql SQL将整型列上的“a”转换为0。我能阻止吗?

Mysql SQL将整型列上的“a”转换为0。我能阻止吗?,mysql,sql,select,casting,integer,Mysql,Sql,Select,Casting,Integer,SQL将整型列上的字符串“a”转换为整数0,如之前在中学习的: 有没有办法防止这种情况?例如:选择。。。其中id=NO\u CONVERT\u STR'a'或类似的内容?我不想更改id列的数据类型 我很幸运地尝试了CAST'a'AS CHAR方法MySQL有一个选项可以关闭插入时的这种转换。我不相信有关闭静音转换的选项 但是,您可以通过执行显式转换强制执行错误: where id = convert('a' as unsigned) 这将产生一个错误。MySQL有一个选项可以关闭插入时的这种

SQL将整型列上的字符串“a”转换为整数0,如之前在中学习的:

有没有办法防止这种情况?例如:选择。。。其中id=NO\u CONVERT\u STR'a'或类似的内容?我不想更改id列的数据类型


我很幸运地尝试了CAST'a'AS CHAR方法

MySQL有一个选项可以关闭插入时的这种转换。我不相信有关闭静音转换的选项

但是,您可以通过执行显式转换强制执行错误:

where id = convert('a' as unsigned)

这将产生一个错误。

MySQL有一个选项可以关闭插入时的这种转换。我不相信有关闭静音转换的选项

但是,您可以通过执行显式转换强制执行错误:

where id = convert('a' as unsigned)

这会产生一个错误。

请描述为什么投票否决,然后我可能会改进我的问题为什么要首先将字符串传递给整数列?问题似乎是导致这种情况发生的原因。因为有时我不知道列的数据类型,而且我无法通过另一个查询获得它。这是一种糟糕的情况。是什么阻止你发现?检查值是否为整型,如果是,则只需使用值作为整型值运行查询,否则将其十六进制以防止注入请描述为什么投票否决,然后我可以改进我的问题为什么首先要将字符串传递给整型列?问题似乎是导致这种情况发生的原因。因为有时我不知道列的数据类型,而且我无法通过另一个查询获得它。这是一种糟糕的情况。是什么阻止你发现?检查值是否为整数,如果是,则只需使用值作为整数值运行查询,否则将其十六进制以防止注入如果没有其他解决方案,这将是最好的如果没有其他解决方案,这将是最好的