Heim > Datenbank > MySQL-Tutorial > Wie wähle ich Daten aus einer Tabelle mit einem Variablennamen in MySQL aus?

Wie wähle ich Daten aus einer Tabelle mit einem Variablennamen in MySQL aus?

Mary-Kate Olsen
Freigeben: 2024-12-27 00:43:09
Original
714 Leute haben es durchsucht

How to Select Data from a Table with a Variable Name in MySQL?

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;
Nach dem Login kopieren

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;
Nach dem Login kopieren

Aufschlüsselung:

  • SET @s: Verkettet die Zeichenfolgen um die dynamische SQL-Abfrage zu bilden.
  • PREPARE stmt1 FROM @s: Bereitet die Anweisung stmt1 mithilfe der dynamischen SQL-Abfrage vor, die in der Variablen @s gespeichert ist.
  • EXECUTE stmt1: Führt die vorbereitete Anweisung aus.
  • DEALLOCATE PREPARE stmt1: Gibt die vorbereitete Anweisung frei, um Ressourcen freizugeben.

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!

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