SQL中多条件查询括号的⽤途
界⾯:
代码
lect id,routeName,routeCharacteristic,routeIntroductions,costDetail,participate,click,routeCategory,dineMenu,weather,isEnable,addPerson,addDate,competitiveProducts,luxury,onVacation,characteris where (addDate>=@beginDate or@beginDate='') and (addDate<=@endDate or@endDate='')
and (routeName like@routeName or@routeName='')
and (newProduct=1or competitiveProducts=1or luxury=1or onVacation=1or characteristic=1
or specialPreference=1or hotRecommend=1or overflow=1or ason=1)
and (priority=0or priority is null)
以上语句是⼀个多条件查询语句,假如没有⽤括号分开的话,那么只有所有条件都为真才会查出数据库中所满⾜条件的⾏,但是这不是我所想要的,所以才需要⽤括号如:
(addDate>=@beginDate or@beginDate=''),意思是当⽤户输⼊数据时,则根据addDate>=@beginDate的条件来查询数据库中满⾜条件的数据,如果⽤户不输⼊任何数据,那么这个
时候⽂本框所得到的值则为:""-->空的字符串,使⽤@beginDate='' (变成sql语句:' '=' ' )也能使这个where⼦句满⾜条件,否则的话很难实现像这样的多条件语句查询.
在来看下这条⼦句:
(newProduct=1or competitiveProducts=1or luxury=1or onVacation=1or characteristic=1
or specialPreference=1or hotRecommend=1or overflow=1or ason=1)
这⾥加括号的意思是当满⾜前⾯⼦句所有条件的情况下并且还要满⾜括号内这些字段⾄少有⼀个为1的数据.
(priority=0or priority is null)
这⾥加括号的意思是当满⾜前⾯⼦句所有条件的情况下并且还要满⾜括号priority=0或者priority为空的数据strike过去式
如果在⼦句:
(priority=0or priority is null)
中不加括号的话,那么priority前满⾜所有的条件下,在使⽤or priority is null这样就不是我们要的数据了.
这条⼦句加括号也是和上⾯⼦句同⼀个意思
幸福来敲门电影下载>care什么意思(newProduct=1or competitiveProducts=1or luxury=1or onVacation=1or characteristic=1
or specialPreference=1or hotRecommend=1or overflow=1or ason=1)
使⽤括号的⽬的就是将⼀⼩段sql⼦句作为⼀个整体来使⽤.
简单的说就是在满⾜前⾯所有⼦句的情况下还要满⾜(priority=0or priority is null)返回为ture的数据.
得到⽂本中输⼊的值调⽤后台数据库代码
private void PriorityBinds()
{
gvPriority.DataKeyNames = new String[] { "id" };
gvPriority.DataSource = tts.PriorityQuery(ddlType.SelectedValue,txtBeginDate.Text,txtEndDate.Text
,txtTouristTrackName.Text,rblPriority.SelectedValue);
gvPriority.DataBind();
}
代码
public DataTable PriorityQuery(String MenuType, String beginDate, String endDate, String routeName, String priority)
{
StringBuilder strSql = new StringBuilder();
strSql.Append(" lect id,routeName,routeCharacteristic,routeIntroductions,costDetail,participate,click,routeCategory,dineMenu,weather,isEnable,addPerson,addDate,competitiveProducts,luxury strSql.Append(" from Tab_TouristTrack ");
strSql.Append(" where (addDate>=@beginDate or @beginDate='') and (addDate<=dateadd(dd,1,@endDate) or @endDate='')");
strSql.Append(" and (routeName like @routeName or @routeName='')");
if (MenuType != "all")
{
strSql.Append(" and "+MenuType + "=1");
}
驱赶的驱是什么意思el
释放压力{
strSql.Append(" and (newProduct=1 or competitiveProducts=1 or luxury=1 or onVacation=1 or characteristic=1");
strSql.Append(" or specialPreference=1 or hotRecommend=1 or overflow=1 or ason=1)");
}
if (priority!="all")
{
if (priority=="1")
{
翻译英语的软件strSql.Append(" and priority=1");
}
el
{
tub8
strSql.Append(" and (priority=0 or priority is null)");
}
}
strSql.Append(" order by priority desc");
SqlParameter[] param = new SqlParameter[]
{
new SqlParameter("@beginDate",beginDate),
new SqlParameter("@endDate",endDate),
new SqlParameter("@routeName","%"+routeName+"%")
};
赤尾屿return SQLLinkDataba.Query(strSql.ToString(),param).Tables[0];
pyp
}
分类: ,
1
pertaining
</div>
<div class="postDesc">posted @ <span id="post-date">2009-12-15 13:28</span> <a href="/jhxk/">唔愛吃蘋果</a> 阅读(<span id="post_view_count">8640</span>) 评论(<span id="post_comment_count">0</span>) &n </div>
<script type="text/javascript">var allowComments=true,cb_blogId=56600,cb_entryId=1624705,cb_blogApp=currentBlogApp,cb_blogUrGuid='7c6d27e0-7e46-de11-9510-001cf0cd104b',cb_entryCreatedDate='2009/12/15 13:28:00';loadViewCount(