我用$array=explode(' ',$_REQUEST[number])得到一个我输入一些列数据的数组之后,我怎么才能用“select * from table where number in ( )”的语句来实现查询?就是数组$array中的每一个值怎么才能在in后面的范围内体现出来?写“select * from table where number in ($array)”好像不行,是错的。谢谢了。
解决方案 »
- 查询过滤数据问题
- Oracle数据库。。从一台机子导到另外一台机子,我现在马上要去客户那里解决这个问题。求高手指点
- java存储过程----不能加载类
- 在线求啊!!XP下安装oracle9i,please~~~~~
- 请教各位高手:如何在客户端应用程序(比如VB、delphi)中如何使用绑定变量?
- 有个问题急用!再线等
- 如何快速的将大数据量写入oracle数据库?
- 如何解决SQL SERVER下的临时表在Oracle下实现
- 大神们来给我看看这是什么问题啊 ,弄了两天了,不知道为什么
- weblogic 启用管理端口9002 报错 bea-090476
- dbms_random
- oracle 10g sys 密码忘记了
可以用instr($array,number)>0判断
如果是数字类型的列还需要用到to_char
array[0]='a';
array[1]='b';
array[2]='c';
转换成字符
declare v varchar2(4000)
v:=''||array[0]||'',''||array[1]||'',''||array[2]||''execute immediate 'select * from table where number in ('||v||')';
思路:
declare
sqlstr varchar2(4000) ;
i number ;
begin
i:=0;
while(i<array.length) loop
sqlstr:=''''||array[i]||''',';
loop end;
sqlstr:=substr(sqlstr,1,lenght(sqlstr)-1);--去掉最后一个','
execute immediate 'select * from table where number in ('||sqlstr||' )';
end;