求SQL语句,兄弟脑子僵了,请各位帮忙~!

helpmeplzplz 2003-09-13 07:15:04
我有一个数据表,是存一些软件信息的,其中有一个字段存的是“关键字”
格式是:aaa,bbb,ccc 就是说关键字个数不一定,用逗号隔开
当从表里读出一条数据的时候,我要用关键字这个字段去判断有没有相关软件,就是说其他软件的关键字中有被读出软件的一个或几个关键字就算与这个软件相关
请问:这个sql语句怎么写~?
...全文
59 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
amadou 2003-09-15
  • 打赏
  • 举报
回复
astring=关键字段
sqlstring="select * from table where"
stringtemp=split(astring,",")
for each x in stringtemp
if not x="" then
sqlstring=sqlstring&" key='"&x&"' or"
end if
next
sqlstring=left(sqlstring,len(sqlstring)-3)

如果查询的关键字是aaa,bbb,ccc
那就会生成一个select * from table where key='aaa' or key='bbb' or key='ccc'
这正是你要的吧?
celerylhl 2003-09-15
  • 打赏
  • 举报
回复
select keywordname from yourtable where instr(keywordname,"aaa")>0
其中keywordname是你是存储关键字的字段名,instr是内置函数.
原理就是看"aaa"是否在当前字段中.返回值是出现的次数,这里用>0就可以了
helpmeplzplz 2003-09-15
  • 打赏
  • 举报
回复
to amadou(黑火柴):
哥们,这个sql语句我实在是不太懂~~`
sqlstring=sqlstring&" key="&x&" or"
这句的 key="&x&" 是什么意思啊???
还有,好象关键字字段为空的时候会出错~~
麻烦了,帮帮忙~~~
helpmeplzplz 2003-09-15
  • 打赏
  • 举报
回复
谢谢了,马上结贴
超级大笨狼 2003-09-15
  • 打赏
  • 举报
回复
select * from table where type like '*关键字*'
rongwenfeng 2003-09-15
  • 打赏
  • 举报
回复
select * from table where type like '*关键字*'
helpmeplzplz 2003-09-13
  • 打赏
  • 举报
回复
谢谢各位了~!
to amadou(黑火柴) :
你这句是什么意思啊??
sqlstring=left(sqlstring,len(sqlstring)-3)
alexbobof 2003-09-13
  • 打赏
  • 举报
回复
呵呵,我只会这个简单的

select * from 表 where 字段 like 关键字

楼上的那些我也要学习学习。
amadou 2003-09-13
  • 打赏
  • 举报
回复
随便多长的关键字都行啊
astring=关键字段
sqlstring="select * from table where"
stringtemp=split(astring,",")
for each x in stringtemp
sqlstring=sqlstring&" key="&x&" or"
next
sqlstring=left(sqlstring,len(sqlstring)-3)
beststone 2003-09-13
  • 打赏
  • 举报
回复
首先,你保证你输入的关键字前后都必须有逗号,然后使用 where [关键字] like ',%变量%,' 这种方式就可实现你需要的功能了
yjshm 2003-09-13
  • 打赏
  • 举报
回复
select * from table where type like '%关键字%'
简单就好吗这个没错的了
alan815 2003-09-13
  • 打赏
  • 举报
回复
首先取出当前软件的关键字,用变量保存那个取出的关键字。判断有没有逗号,如果有则是两个以上,如果没有则只有一个关键字。
当只有一个关键字时:
select * from table where [关键字] like '%"&变量&"%'
如果有多个关键字,那么:
变量=split(rs(关键字),",")
select * from table where ([关键字] like '%&变量(0)&%')
or ([关键字] like '%&变量(1)&%')
or ([关键字] like '%&变量(2)&%')
......
你试试吧
happylifei 2003-09-13
  • 打赏
  • 举报
回复
我说一下思路 ,仅供参考
1.取出关键字
2.用split函数把取出的关键字分开
3.用for each ?in
select * where ?in(...)

4 .if not rs.eof then response.write rs(..)
5.next
helpmeplzplz 2003-09-13
  • 打赏
  • 举报
回复
to amadou(黑火柴) :
那个关键字字段是动态读出来的呀,而且每个关键字也不一定就是3个字符
怎么写,兄弟真的有点晕了,请各位帮帮忙吧~~
lang11zi 2003-09-13
  • 打赏
  • 举报
回复
stringtemp=split(astring,",")
然后判断用呀。
amadou 2003-09-13
  • 打赏
  • 举报
回复
astring="aaa,bbb,ccc"
sqlstring="select * from table where"
stringtemp=split(astring,",")
for each x in stringtemp
sqlstring=sqlstring&" key="&x&" or"
next
sqlstring=left(sqlstring,len(sqlstring)-3)
自然安静 2003-09-13
  • 打赏
  • 举报
回复
可以用LIKE 进行模糊查询!
ttt2 2003-09-13
  • 打赏
  • 举报
回复
select * from message
where charindex(id,ck) >0
helpmeplzplz 2003-09-13
  • 打赏
  • 举报
回复
各位帮帮忙,分不够可以再加~!
helpmeplzplz 2003-09-13
  • 打赏
  • 举报
回复
关注~~
加载更多回复(2)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧