首页 分享 低效的where1=1

低效的where1=1

来源:萌宠菠菠乐园 时间:2024-10-21 05:09

最新推荐文章于 2024-04-21 15:10:04 发布

yuan2black 于 2015-11-11 18:49:56 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

在上一篇文章中,我觉得对于动态组装的sql语句可以使用

WHERE 1=1

这种方式来动态组装,其实这样是一个非常不好的方法,这样简便的方法会造成性能的损失。在使用了“1=1”的过滤条件以后数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描以比较此行是否满足过滤条件。

可以使用下面的方法来解决

private void doQuery(){

boolean hasWhere=false;

StringBuilder sql=new StringBuilder("SELECT * FROM T_Employee");

if(选择了某查询条件){

haswhere=appendWhereIfNeed(sql,haswhere);

sql.appendLine(具体查询条件内容);

}

if(选择了另外的查询条件){

haswhere=appendWhereIfNeed(sql,haswhere);

sql.appendLine(具体查询内容);

}

}

private boolean appendWhereIfNeed(StringBuilder sql,Bool haswhere){

if(!haswhere){

sql.appendLine("WHERE");

}else{

sql.appendLine("AND");

}

return true;

}

相关知识

低效的where1=1
mysql 寄件1/1
基于Node.js的宠物领养系统的设计与实现源码+项目说明文档.zip资源
海曙洞桥:“加减法”盘活低效用地
慎用宠物除臭剂,这三种不可选!
这些除臭剂对宠物有这么多伤害,你都知道吗?
宠物消毒液是消毒产品还是兽药
消毒技术
不会训练狗狗,这五个方法你学会了吗
1=1

网址: 低效的where1=1 https://www.mcbbbk.com/newsview426091.html

所属分类:萌宠日常
上一篇: 从月薪1500到年入200万,2
下一篇: 【一年宠物博主生涯】怎么去做社群

推荐分享