最好SELECT ... IN($ csv)或循环数组?

时间:2012-01-22 21:26:17

标签: php mysql arrays csv

这些等价物中的哪一个更可取:

$medium_csv = implode(",",$medium_array);
mysql_query('SELECT col1, col2 FROM table1 WHERE user_id IN ($medium_csv)');

或者这个:

foreach ($medium_array as $array_item) {
    mysql_query('SELECT col1, col2 FROM table1 WHERE user_id = $array_item');
}

* 如果重要,则数组介于10到500个项目

3 个答案:

答案 0 :(得分:3)

当您可以选择通过一个呼叫结算时,不需要对MySQL进行10到500次调用。就这么简单。

答案 1 :(得分:1)

最好SELECT IN,特别是如果user_id被编入索引。当一个简单的SQL语句可以解决问题时,没有理由在php和mysql之间来回运行多达500次。

答案 2 :(得分:0)

通常你应该坚持少选择(除非你需要选择一些讨厌的连接)。如果您有两种选择,您应该始终对其进行基准测试。如果数组太长可能最好把它分成几块,但绝对不要一个接一个地循环选择它。