Nutzung von MySQL für Array-basierte WHERE-Klausel-Abfragen
Wenn Sie mit mehreren Bedingungen in einer WHERE-Klausel arbeiten, sollten Sie erwägen, die Leistung durch die Verwendung eines Arrays zu optimieren als Argument innerhalb einer von MySQL vorbereiteten Anweisung. Dieser Ansatz macht das manuelle Sortieren der Ergebnisse überflüssig und nutzt die Funktionen von MySQL.
Stellen Sie sich eine Abfrage wie diese vor:
SELECT * FROM somewhere WHERE `id` IN(1,5,18,25) ORDER BY `name`;
Mit einem Array von abzurufenden IDs ($ids = array(1 ,5,18,25)) können Sie die gewünschten Daten wie folgt effizient abrufen Schritte:
Bereiten Sie eine einzelne Aussage vor:
$stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id` IN (?);');
Implodieren Sie das Array in eine Reihe von Fragezeichen:
$clause = implode(',', array_fill(0, count($ids), '?'));
Bereiten Sie die Aussage mit der Klausel erneut vor enthalten:
$stmt = $mysqli->prepare('SELECT * FROM somewhere WHERE `id` IN (' . $clause . ') ORDER BY `name`;');
Binden Sie die IDs mit call_user_func_array:
call_user_func_array(array($stmt, 'bind_param'), $ids);
Verwenden Sie dies Bei dieser Technik wird die Sortierung von MySQL durchgeführt, sodass keine manuelle Manipulation erforderlich ist. Darüber hinaus ist dieser Ansatz effizient und reduziert die Anzahl der erforderlichen Datenbankabfragen.
Das obige ist der detaillierte Inhalt vonWie können die vorbereiteten Anweisungen von MySQL Array-basierte WHERE-Klausel-Abfragen optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!