Auswählen von Daten aus einem variablen Tabellennamen in MySQL
In MySQL können Sie auf Szenarien stoßen, in denen Sie Daten aus einer Tabelle abrufen müssen, deren Der Name wird in einer Variablen gespeichert. Dies kann mit SQL allein schwierig zu erreichen sein, da der dynamische Zugriff auf eine Tabelle über ihren Namen zu Fehlern führen kann.
Problem:
Stellen Sie sich das folgende Szenario vor:
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;
Das Ausführen dieser Abfrage führt zu einem Fehler, da MySQL die Variable @Cat nicht als gültige Tabelle interpretieren kann Name.
Lösung:
Um diese Einschränkung zu überwinden, können Sie eine vorbereitete Erklärung verwenden:
SET @s = CONCAT('select * from ', @Cat, ' where ID = ', @ID_1); PREPARE stmt1 FROM @s; EXECUTE stmt1; DEALLOCATE PREPARE stmt1;
Aufschlüsselung:
Mit diesem Ansatz können Sie eine SQL-Abfrage dynamisch ausführen, wobei der Tabellenname zur Laufzeit aus den in den Variablen @ gespeicherten Werten ermittelt wird. Katze und @ID_1.
Das obige ist der detaillierte Inhalt vonWie wähle ich Daten aus einer Tabelle mit einem Variablennamen in MySQL aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!