我用$array=explode(' ',$_REQUEST[number])得到一个我输入一些列数据的数组之后,我怎么才能用“select * from table where number in ( )”的语句来实现查询?就是数组$array中的每一个值怎么才能在in后面的范围内体现出来?写“select * from table where number in ($array)”好像不行,是错的。谢谢了。
调试欢乐多
可以用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;