读书人

关于数据查询比较饶的有关问题标题要

发布时间: 2012-03-27 13:44:24 作者: rapoo

关于数据查询比较饶的问题,标题要长长!!!!
我现在有一个数组,里面放了10个String的对象,我现在要查数据库,select id,xx from A where xx = '这个数组中的某个值'。
思路一:遍历数组,在循环中一个一个去查数据库,这个思路明显不可行,效率不行。
思路二,把数据遍历,然后拼接成字符串,在SQL 语句中用select * from A where xx in()的方法,但是ID与数组中的值要一一对应,更关键的是,万一这个值不存在,数据查不到,就是in里面有10个值,但是如果xx = '这个数组中的某个值'为false,那么查出来的可能不到10个,即使对应了,也要很多的遍历才可以,明显影响效率。

最后要把这个取到的ID 与 数组中的值一一对应一起来。这个也很关键,用什么关联,MAP 或者其他什么!

希望各位大虾帮忙,说说你们的思路!!!万分感谢!!!

[解决办法]
select id,xx from A where xx = '这个数组中的某个值'。

直接用CHARINDEX

select id,xx from A where CHARINDEX(xx, ''这个数组')


[解决办法]
1、用正则;
2、用查询函数,如INSTR、FIND_IN_SET、CHARINDEX之类的,根据你的数据库来判定使用什么函数
[解决办法]
2楼已经有
select * from tt where c1 regexp 'f1|f2|f3'

函数
select * from tt where CHARINDEX(','+c1+',',',f1,f2,f3,')>0

读书人网 >SQL Server

热点推荐