Das ist eine ziemlich einfache Frage und ich gehe davon aus, dass die Antwort "Es ist egal", aber ich muss trotzdem fragen ...MySQL Performance - "IN" -Klausel vs. Gleich (=) für einen einzelnen Wert
ich habe eine generische sQL-Anweisung in PHP gebaut:
$sql = 'SELECT * FROM `users` WHERE `id` IN(' . implode(', ', $object_ids) . ')';
vor Gültigkeitsprüfungen Unter der Annahme ($object_ids
ist ein Array mit mindestens 1 Punkt und alle numerischen Werten), soll ich folgende stattdessen tun?
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) . ')';
}
Oder ist der Aufwand für die Überprüfung count($object_ids)
nicht wert, was in der aktuellen SQL-Anweisung gespeichert werden würde (wenn überhaupt)?
Sie haben Ihre Frage beantwortet :) es spielt keine Rolle. Es ist auch einfacher, 'implode' zu verwenden, ohne die Größe des Arrays zu überprüfen. –
@ N.B. Hat dir jemals jemand gesagt, dass dein Name perfekt für Kommentare ist: P – mellamokb
@mellamokb - jetzt hat jemand :) –