主题:  解释2个不明白的地方

shilinow

职务:普通成员
等级:1
金币:0.0
发贴:60
#12003/2/10 13:36:41
sql="select * from news where 1=1"
if not (myKeyword="" or isempty(myKeyword) ) then
    sql=sql&" and title like '%"&myKeyword&"%'"


where 1=1是什么意思呀,还有那个'%"&myKeyword&"%'"为何是这样表示的?



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#22003/2/10 13:50:58
最好能写全面一点,否则只能凭感觉了,前面一个1是字段,后面的1可能是个自定义的变量,
'%"&myKeyword&"%'"表示模糊查询,查询字段中包含有该字符(串)的记录。

编辑历史:[这消息被arhui编辑过(编辑时间2003-02-10 13:52:05)]

难人一个……

shilinow

职务:普通成员
等级:1
金币:0.0
发贴:60
#32003/2/10 18:38:08
这是整个部分的代码:
myKeyword=Request("myKeyword")
page=Request("page")
if (page="" or isempty(page)) then page=1
thisUrl="newsList.asp?myKeyword="&myKeyword
session("adminOldUrl")=thisUrl&"&page="&page
set rs=server.createobject("adodb.recordset")
sql="select * from news where 1=1"
if not (myKeyword="" or isempty(myKeyword) ) then
    sql=sql&" and (title like '%"&myKeyword&"%' or content like '%"&myKeyword&"%')"
end if
sql=sql&" order by id"
'response.write sql
'response.End
rs.open sql,conn,1,1



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#42003/2/11 9:09:01
前面的一个1应该是数据库的字段名吧,后面的1可能是设置的值,以方便查询1字段中记录为1的记录,然后再同时对title or content查询 like mykeyword的记录.


难人一个……

大雪糕

职务:普通成员
等级:2
金币:10.0
发贴:579
#52003/2/11 11:57:50
不对,arhui说得不对,where 1=1纯粹表示1=1,对数据库查询不产生任何影响,这是为下面的and title like '%"&myKeyword&"%'而服务的,保证了当where子句里的条件都不满足时,不会产生语法错误



高猪

职务:普通成员
等级:1
金币:0.0
发贴:53
#62003/2/18 15:17:12
同意星之海洋的意见,1=1对查询结果没什么影响,可以去掉。后面的那个玩艺只是格式,就那么写好了,不要问为什么



绿茶

职务:普通成员
等级:8
金币:10.0
发贴:19267
#72003/2/18 15:52:09
1=1就如同一个空条件,一般常用在不确定查询字段数目有多少个时,用来确保语句的合法性