不想用where 1=1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不想用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";
参考技术A 不好意思,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;
参考技术B 楼主不要多想了,一般情况下,都是用1=1的,况且这样真的很方便 参考技术C 学习.发现大侠真的存在哦。.

以上是关于不想用where 1=1的主要内容,如果未能解决你的问题,请参考以下文章

sql简单的语句

在SQL中,如何查询某一字段中最大值的数据

不想用where 1=1

测试需要知道的9条基本sql语句

where 1=1的用处

where 1=1的作用