Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich Arrays mit MySQL-vorbereiteten Anweisungen in WHERE ... IN()-Klauseln effizient verwenden?

Wie kann ich Arrays mit MySQL-vorbereiteten Anweisungen in WHERE ... IN()-Klauseln effizient verwenden?

Mary-Kate Olsen
Freigeben: 2024-12-29 04:06:13
Original
196 Leute haben es durchsucht

How Can I Efficiently Use Arrays with MySQL Prepared Statements in WHERE ... IN() Clauses?

Verwenden von Arrays in MySQL-vorbereiteten Anweisungen für WHERE ... IN(...)-Abfragen

Beim Abfragen einer Datenbank mithilfe vorbereiteter Anweisungen Es wird empfohlen, eine einzelne Anweisung vorzubereiten und mehrmals auszuführen, um die Leistung zu verbessern. Wenn es jedoch um ein Array von IDs für eine WHERE ... IN(...)-Abfrage geht, kann das manuelle Sortieren der Ergebnisse nach der Ausführung ineffizient sein.

Ein alternativer Ansatz besteht darin, eine Technik zu verwenden, die das Erstellen umfasst eine durch Kommas getrennte Liste von Platzhaltern (?), basierend auf der Länge des Arrays. Betrachten Sie das folgende Beispiel:

$ids = array(1,5,18,25);

// Create a string containing ?,?,?
$clause = implode(',', array_fill(0, count($ids), '?'));

$stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id` IN (' . $clause . ') ORDER BY `name`;');

call_user_func_array(array($stmt, 'bind_param'), $ids);
$stmt->execute();

// Loop through results
Nach dem Login kopieren

Bei diesem Ansatz erstellt implode(...) eine Zeichenfolge mit der erforderlichen Anzahl von Platzhaltern. Die Funktion call_user_func_array(...) bindet dann die Werte aus dem $ids-Array an die Platzhalter. Mit dieser Technik können Sie die Ergebnisse mithilfe der integrierten Sortierfunktion von MySQL sortieren, sodass keine manuelle Sortierung erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie kann ich Arrays mit MySQL-vorbereiteten Anweisungen in WHERE ... IN()-Klauseln effizient verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage