2014-06-20 84 views
1

我有一组ID,我必须从表中选择的阵列的每个值,我可以通过一个在for loop由一个得到它,通过阵列选择查询值

SELECT point, privacy FROM `tableName` WHERE id='1403176452487620892'and status=1 

但问题是,数组大小是100,我需要一个查询而不是100。

+0

什么语言从该来的? Java的? –

+0

@AlvinThompson我正在使用Scala –

+0

是的,循环并通过JDBC驱动程序绑定值。 –

回答

2

你为什么不能使用:

SELECT point, privacy FROM `tableName` WHERE status=1 and id in(?,?,?...) 

是的,这是可笑的长,但如果查询你所需要的...

+0

'使用for循环,以及'您在该帖子中的评论,对不起,我没有得到它 –

+0

@GovindSinghNagarkoti:但现在你呢? –

+0

@GovindSinghNagarkoti:对不起,你是什么意思,“意思是它不是一个正确的方法来使用'我的情况'? –

1

你可以使用这样的:

$ids = join(',',$ids); 
    $sql = "SELECT * FROM tableName WHERE id IN ($ids)"; 
+0

数据库中的ID是否为数组? MySQL无法执行'for'循环,可以吗? –

+0

'$ ids = join(',',$ ids);'不熟悉这个语法是否将它转换为逗号delimated字符串 –

+0

是的,它将它转换为逗号解构的字符串。 –

0

你可以尝试这样的

$array = array(1,2,3); 
$str = implode(",", $array); 
$sql = "SELECT point, privacy FROM `tableName` WHERE id in ($str) and status=1";