SQL in查询语句

来源:百度知道 编辑:UC知道 时间:2024/06/28 19:53:02
我做的asp和access
在数据库中有一个pzdz,里面的是数字组成的字符串

1,3,5,2
3,6,15,17
之类
我现在传递一个参数到处理页面,参数是一个数字,要求只要pzdz里包含这个参数,就选中该条信息
我写的sql如下
aa=request("aa")
sql="select * from table where "&aa&" in(pzdz)"
如果我用instr或者charindex的话,我传的aa=1,结果会把11,12,13之类都找出来的
结果是错的,问各位大侠!如何解决这个错误!!
pzdz是一个字段!
2楼的,你用4种和只用最后一种没有任何区别!
3楼的,恩~~我传递的的确是一个数字,而且的确是作为数字类型写在sql语句中的
4楼的,你的说法很不现实呢,加大工作量的!!

在数据库中有一个pzdz 这是个字段吗?
里面的是数字组成的字符串
是这种格式吗?
pzdz
1,3,5,2
3,6,15,17

select * from table where pzdz like('aa,%') or pzdz like('%,aa') or pzdz like('%,aa,%') or pzdz='aa';
考虑到了
pzdz
...,aa,...
aa,...
....,aa
aa
四种情况

笨办法

有区别的 你测试吧

之前,我也遇到这样的问题,我推测你这个应该是一对多的关系吧。
如果是这样的,我建议你添加一个关系表,把这些值做为独立的字段来存储,这样sql用=操作就可以找到了这些对应的数据了。

补充回答:
现在改起来工作量算小的了,如果等到后期,那改起来工作量更大。我有过这样的经历。因为这个属于数据库设计问题。
强烈建议你修改结构。

sql="select * from table where pzdz = '"& aa &"'"

select * from tblTempTest where ','+numb+',' like '%,1,%'

aa从页面传进来,经过REQUEST之后,是字符类型,
在where后面可以把aa转换成数字类型
就应该可以了

pada是什么类型的,字符串吧。怎么会把11,12,13之类都找出来?
没有用模去处符吧。用了把它去掉不就行了。