Heim > Datenbank > MySQL-Tutorial > Wie wähle ich Daten aus einer dynamisch benannten Tabelle in MySQL aus?

Wie wähle ich Daten aus einer dynamisch benannten Tabelle in MySQL aus?

Barbara Streisand
Freigeben: 2024-12-11 10:44:14
Original
483 Leute haben es durchsucht

How to Select Data from a Dynamically Named Table in MySQL?

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

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

Aufschlüsselung der Lösung:

  1. @s = CONCAT(): Diese Anweisung verkettet die Zeichenfolge „select * from“ mit den in @Cat und @ID_1 gespeicherten Werten, um die eigentliche SQL-Abfrage zu bilden.
  2. PREPARE stmt1 FROM @s: Diese Anweisung bereitet die SQL-Abfrage aus der in @s gespeicherten Zeichenfolge vor und verknüpft sie mit dem Namen 'stmt1'.
  3. EXECUTE stmt1: Diese Anweisung führt die vorbereitete Anweisung stmt1 aus und führt damit effektiv die dynamische SQL-Abfrage aus.
  4. DEALLOCATE PREPARE stmt1: Diese Anweisung gibt die für die vorbereitete Anweisung zugewiesenen Ressourcen frei stmt1.

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!

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