So führen Sie eine dynamische Tabellenauswahl in MySQL durch
Beim Abfragen einer MySQL-Datenbank kann es vorkommen, dass Sie Daten aus einer Datenbank auswählen möchten Tabelle, deren Name in einer Variablen gespeichert ist. Dies kann für Abstraktions- oder dynamische Programmierzwecke nützlich sein. Direkte Versuche, solche Abfragen mit einer Syntax wie:
SET @ID_1 = (SELECT ID FROM `slider` LIMIT 0,1); SET @Cat = (SELECT Category FROM `slider` LIMIT 0,1); select * from @Cat where ID = @ID_1
auszuführen, führen jedoch zu MySQL-Fehlern. Um diese Einschränkung zu überwinden, ist ein robusterer Ansatz erforderlich.
Lösung: Verwendung vorbereiteter Anweisungen
Zur Auswahl aus einer MySQL-Tabelle, in der der Tabellenname in einer Variablen gespeichert ist können Sie vorbereitete Aussagen verwenden. Mit einer vorbereiteten Anweisung können Sie SQL-Abfragen dynamisch generieren und ausführen, indem Sie zunächst die Abfrage vorbereiten und sie dann mit den tatsächlichen Werten ausführen.
So können Sie dies erreichen:
SET @s = CONCAT('select * from ', @Cat, ' where ID = ', @ID_1); PREPARE stmt1 FROM @s; EXECUTE stmt1; DEALLOCATE PREPARE stmt1;
Aufschlüsselung der Lösung:
Durch die Verwendung vorbereiteter Anweisungen können Sie SQL-Abfragen basierend auf variablen Tabellennamen dynamisch erstellen und ausführen und so Flexibilität und fehlerfreie Ausführung gewährleisten.
Das obige ist der detaillierte Inhalt vonWie wähle ich Daten aus einer dynamisch benannten Tabelle in MySQL aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!