Esta es una pregunta bastante simple y supongo que la respuesta es "No importa", pero tengo que preguntar de todos modos ...Rendimiento de MySQL - Cláusula "IN" vs Iguales (=) para un valor único
que tienen una instrucción SQL genérica construida en PHP:
$sql = 'SELECT * FROM `users` WHERE `id` IN(' . implode(', ', $object_ids) . ')';
Suponiendo que las comprobaciones de validez anteriores ($object_ids
es una matriz con al menos 1 elemento y todos los valores numéricos), debería hacer lo siguiente en su lugar?
if(count($object_ids) == 1) {
$sql = 'SELECT * FROM `users` WHERE `id` = ' . array_shift($object_ids);
} else {
$sql = 'SELECT * FROM `users` WHERE `id` IN(' . implode(', ', $object_ids) . ')';
}
O es la sobrecarga de comprobación count($object_ids)
no vale la pena lo que se guarda en la instrucción SQL real (o ninguna en absoluto)?
Has respondido a tu pregunta :) no importa. También es más fácil usar 'implode' sin verificar el tamaño de la matriz. –
@ N.B. ¿Alguna vez alguien le dijo que su nombre es perfecto para comentarios: P – mellamokb
@mellamokb - ahora alguien lo hizo :) –