不想用where 1=1

sql="select * from payout";
if(yourname!="")
{
sql=sql + " where yourname like '%yourname%'";
}
if(beginDate!="")
{
sql=sql+" and [time] > beginDate";
}
假如说yourname==""怎么办呀?
sql语句就成了
sql="select * from payout and [Time] > beginDate"
除了加上where 1=1和很多if……else来判断条件拼接sql语句之外,有没有更好的方法。
qtoy2ha的回答也不行啊,可能会出现
sql="select * from payout where and [time] > beginDate"
我用的是C#中的StringBuilder的append()方法。数据量大的时候where 1=1不是效率不高吗?

这样呢?虽然用了where 1=1 但是比较简洁,不用if:

sql="select * from payout where 1=1 ";
if(yourname!="")
{
sql=sql + "and yourname like '%yourname%'";
}

if(beginDate!="")
{
sql=sql + "and [time] > beginDate";
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-01-03
不好意思,C#我不会,不知道怎么用,实在不行你就用where 1=1 吧
sql = "";
if(yourname!="")
{
sql=sql + " and yourname like '%yourname%'";
}
if(beginDate!="")
{
sql=sql+" and [time] > beginDate";
}
if(sql !=""){
//本来应该在这里加上像ASP里的 sql = mid(sql,5),PHP的 $sql = substr($sql,4)

sql = "where" + sql;
}
sql="select * from payout"+sql;
第2个回答  2008-01-03
楼主不要多想了,一般情况下,都是用1=1的,况且这样真的很方便
第3个回答  2008-01-03
学习.发现大侠真的存在哦。.

不要再用where 1=1了,有更好的写法
首先,理解where 1=1的目的:它实际上是为了让where条件始终为真,即使没有实际的约束。在动态构建SQL时,当变量b非空时,它能确保与"and"语句正确拼接,避免语法错误。例如,原本的SQL可能会因为b的值而变成错误的格式,但加上1=1后,情况就不同了。然而,有人担心这可能会影响性能。在MySQL 8.0...

不要再用where 1=1了,有更好的写法
在SQL语句的编写中,使用where 1=1这种形式的原因在于其可以作为假条件,使得整个where条件始终为真,从而在动态构建SQL语句时避免语法错误。这种写法主要应用于动态SQL拼接场景,当其他条件需要添加至原有SQL语句时,使用where 1=1可以简化SQL拼接过程。此外,类似形式如1>1、2>1、'a'='a'等只要结果...

MyBatis 中为什么不建议使用 where 1=1?
接手一个老项目,开发的辛酸滋味无需赘述。在研读 mapper 文件时,我发现了一个常见的,看似无用的 SQL:where 1=1。对于追求代码整洁的我,自然想进行优化。初次尝试的错误方法是直接删除,如删除代码中的 1=1,并移除不必要的 and,如下:然而,这种改动并未带来预期的效果。当传递 name 参数时,...

mybatis中为什么不建议使用where1=1?
探讨mybatis中使用where 1=1 的优劣。一般在多条件查询时,使用where 1=1 方便处理条件缺失问题。然而,有说法称此举可能影响性能,导致索引失效。通过实测及解释命令查看,发现where 1=1 依然能利用索引,不影响查询效率。MySQL优化器在解析SQL指令时,会将无意义的条件优化掉,如1=1,确保效率。在my...

不想用where 1=1
这样呢?虽然用了where 1=1 但是比较简洁,不用if:sql="select * from payout where 1=1 ";if(yourname!=""){ sql=sql + "and yourname like '%yourname%'";} if(beginDate!=""){ sql=sql + "and [time] > beginDate";} ...

刚才有个前辈说写sql的时候不要写where 1=1,让我判断条件截取字符串_百 ...
性能降低,但是,我觉得这是微不足道的,如果不加1=1,后面的语句要写很多

SQL中 为什么要避免在where后使用'1=1'这种表达式作为部分条件_百度...
并非一定要避免,而是数据量很多的情况下,这种条件会导致sql执行的时候忽略掉索引的优势,导致查询效率很低。所以,只在数据量很大的时候才是需要尽量避免使用。数据量少的时候,用这个还是很方便的。参考资料:http:\/\/blog.csdn.net\/farawayhome\/article\/details\/6621114 ...

oracle中sql优化,这条语句中的where 1=1是什么意思?去掉可以吗?_百度...
不会影响,良好的开发习惯,只是加了个恒等式。也许你一般看不到影响,下面这种场景你就知道了。String sql=select * from table1 where 1=1 为什么要写多余的1=1?马上就知道了。if(!name.equals("")){ sql=sql+"name='"+name+"'";} if(!age.equals("")){ sql=sql+"age'"+age+"'...

DB2中where子句中用了1=1的话,会不会导致索引失效,请详细说明.
不会.但是强烈不建议用1=1,容易给人注入阿 where后面的条件是逐个进行的,更何况1=1 和表列之间没有任何关系的

where 1=1 作用
where 1=1 作用如下:"WHERE 1=1" 是一个在 SQL 查询中使用的条件语句,它的作用主要是构建动态查询语句。这是一个非常有用的技巧,可以在不知道确切查询条件时使用,或者在组合多个查询条件时使用。当你在查询语句中使用 "WHERE 1=1" 时,实际上是在创建一个始终为真的条件。这是一个占位符,...

相似回答
大家正在搜