【求助】ASP一个数据查询的语句

Coverboy_6 2006-08-22 03:51:01
【求助】一个数据查询的语句

我的数据库有张企业产品表,有的产品有两个属性,比如产品A的属性在数据库表的列里是 “1,6,7” 产品B是 "6,10"

然后我在前台的页面有属性列表,点到属性“1”的时候我要显示产品A,但是我用
t_type=request("type") (这时T_TYPE的值为1)
select * from table01 where type like '%"&t_type&"%'

用上面的语句搜索的时候会将产品A、B都会显示,如果改成
select * from table01 where type='"&t_type&"' 的时候一个产品也没有。
我想问问该怎么表达才能达到我要的效果?
...全文
124 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
roseqiu1 2006-08-22
  • 打赏
  • 举报
回复
如果属性中的"1"不在最后的位置,就用
select * from table01 where type like '"&t_type&",%'
canning92 2006-08-22
  • 打赏
  • 举报
回复
如果以你目前这种搜索方式1,6,7是不可能是数值型的,这是肯定的,对吧!
至于说001,002这些字符的输入,你可以根据你大概属性的需求来做。
比如说,你觉得99个之类的属性是OK的,则可以判断后前面补"0"
比说如if i<10 则 补0
这个很简单,关键是看你的数据结构的布局!
canning92 2006-08-22
  • 打赏
  • 举报
回复
(',' + type + ',', ',' + '1' + ','),是1的情况下也是可以的,它的最终结果是这样的

比如说type的值是1,6,7 而t_type的值是1,则上面这条语句就是
(#,1,6,7,#,@,1,@),#@号是用来区别的!实际当中是没有的。
Coverboy_6 2006-08-22
  • 打赏
  • 举报
回复
canning92(追風浪星) 能就我的问题给个写法和好的建议吗?因为在填加属性的时候,ID是用的识别种子自动加1的,所以你说的用001,002……怎么弄啊?
canning92 2006-08-22
  • 打赏
  • 举报
回复
有点疑问:
instr这个函数可以在SQL里面使用吗,这个是Vbscript函数!
Sql里面应该用Charindex()这个函数.

CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下:CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。

其实我觉得楼主应该好好思考一下你的数据库结构,考虑好你的数据量,系统消耗等等。
建议你使用以下方法:
按你属性的位数多少来进行定义。
即:1,6,7,二位你可以按01,06,07 和06,10
三位,你可以按001,006,007和015,016,092
然后搜索时按:01或者001....依次类推来实现会更好!

Coverboy_6 2006-08-22
  • 打赏
  • 举报
回复
字段类型是 INT 的
Coverboy_6 2006-08-22
  • 打赏
  • 举报
回复
where mark=1 and instr(',' + type + ',', ',' + '1' + ',')>0 order by adddate desc

写出来就是这样
peijunfeng 2006-08-22
  • 打赏
  • 举报
回复
这个跟字段的类型也有关系的,你检查一下你字段类型和你sql语句中的类型是否相符合。最好是把你的sql语句贴出来给大家看看
leohuang 2006-08-22
  • 打赏
  • 举报
回复
你别让单引号和逗号把你整晕了
你把执行后的SQL贴出来看看

Response.Write sql
Coverboy_6 2006-08-22
  • 打赏
  • 举报
回复
二楼的朋友,那办法不好用。还是没有搜索结果

有的属性就是1的话,这样也行吗?
loweek 2006-08-22
  • 打赏
  • 举报
回复
楼上正解
leohuang 2006-08-22
  • 打赏
  • 举报
回复
因为6,10里边也有个字符"1"

try
-----------------------------------
select * from table01 where instr(',' + type + ',', ',' + '" & t_type & "' + ',')>0"

28,402

社区成员

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

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