Mysql查询时,对于数值型字段加单引号会引起的误解~
16lz
2021-01-22
假设有表 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注入。
更多相关文章
- android应用如何在有需要时申请root权限?在程序中要调用哪些语句
- 封装底部dialog弹窗 adapter T类型的适配同种布局不同实体类
- Android 中文件类型与MIME的匹配表
- 错误:未使用的导入语句 - 导入android.widget.AdapterView.OnItem
- 如何执行删除请求而不返回类型或回调?(改造)
- 如何将Java中的类型与反射进行比较
- “checkout as maven project from scm”中缺少scm类型
- Spring Hibernate:没有类型为org.hibernate.SessionFactory的匹配
- java返回值是list的时候获取list的参数类型