不想用where 1=1

来源:百度知道 编辑:UC知道 时间:2024/07/07 20:22:19
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";
}

不好意思,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;

楼主不要多想了,一般情况下,都是用1=1的,况且这样真的很方便

学习.发现大侠真的存在哦。.