所以我有以下查询:
$resclients=$mysqli->query("SELECT id,client_name FROM clients WHERE id IN ($result[])");
我想知道,在for或foreach循环中执行上述查询是否不好,这会损害MySQL服务器吗?
或者,执行左连接、内部连接还是右连接更好?
忘了补充,$result[] 实际上是一个二维数组。
显示您的阵列:
Array
(
[0] => Array
(
[id] => 7
[resclients] => 6,7,8,9,10,11,12,13,14,15
)
[1] => Array
(
[id] => 5
[resclients] => 5
)
[2] => Array
(
[id] => 4
[resclients] => 4
)
)
只是其中的一小部分。
您可以将其用作:
// a testing multidimensional array
$testArr = array(
array(
'one'=>1,
'two'=>2,
'three'=>3)
);
$yourIds = array();
foreach ($testArr as $value) {
foreach ($value as $finalVal) {
$yourIds[] = $finalVal[];
}
}
$implodedIds = implode(",",$yourIds);
echo "SELECT id,client_name FROM clients WHERE id IN ($implodedIds)";
结果:
SELECT id,client_name FROM clients WHERE id IN (1,2,3)
请注意:这是如何在不使用循环查询的情况下使用的基本思想。