Mysql查询时,对于数值型字段加单引号会引起的误解~


假设有表 tb1

ID | name|

----+--------+

1   |2toon|

2   |1*xyz|

 

 

语句1:

 select * from  tb1 where ID='2toon' or name ='2toon';

 

mysql服务器在某模式下,可以执行这条句,就成功返回两条记录,原因在于 ID=‘2toon’ 加了单引号,mysql解释为 ID=2.

 

语句2

select * from  tb1 where ID=2toon or name ='2toon';

此语句执行不了。

 

 

因此,想要得准确的查询结果,对int的字段一定要做判断与转类型。

转类型还可以防止SQL注入。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com