我现在有一个数组,里面放了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