Questa è una domanda piuttosto semplice e presumo che la risposta sia "Non importa", ma devo chiedere comunque ...Prestazioni MySQL - Clausola "IN" vs. Equals (=) per un valore singolo
ho una dichiarazione di sql generica costruito in PHP:
$sql = 'SELECT * FROM `users` WHERE `id` IN(' . implode(', ', $object_ids) . ')';
Supponendo controlli di validità precedenti ($object_ids
è un array con almeno 1 articolo e tutti i valori numerici), devo fare la seguente, invece?
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 è il sovraccarico di controllo count($object_ids)
non vale quello che sarebbe stato salvato nell'istruzione SQL reale (se non del tutto)?
Hai risposto alla tua domanda :) non importa. È anche più facile usare 'implode' senza controllare la dimensione dell'array. –
@ N.B. Qualcuno ti ha mai detto che il tuo nome è perfetto per i commenti: P – mellamokb
@mellamokb - ora qualcuno ha fatto :) –