Heim > Datenbank > MySQL-Tutorial > Wie führe ich dynamische Abfragen in MySQL aus?

Wie führe ich dynamische Abfragen in MySQL aus?

Linda Hamilton
Freigeben: 2024-11-29 22:06:11
Original
468 Leute haben es durchsucht

How to Execute Dynamic Queries in MySQL?

Ausführen dynamischer Abfragen in MySQL

Das Ausführen dynamischer Abfragen, bei denen die SQL-Anweisung selbst zur Laufzeit erstellt wird, wird in MSSQL üblicherweise mithilfe der gespeicherten Prozedur EXEC ausgeführt. Allerdings fehlt MySQL ein direktes Äquivalent.

Die Herausforderung meistern

Um dynamische Abfragen in MySQL auszuführen, besteht ein Ansatz darin, die Abfragezeichenfolge als Variable zu konstruieren und dann die Anweisungen PREPARE und EXECUTE zu verwenden.

Implementierung

Der folgende Code zeigt, wie eine dynamische Abfrage ausgeführt wird MySQL:

SET @queryString = (
SELECT CONCAT('INSERT INTO user_group (`group_id`,`user_id`) VALUES ', www.vals) as res FROM (
    SELECT GROUP_CONCAT(qwe.asd SEPARATOR ',') as vals FROM ( 
           SELECT CONCAT('(59,', user_id, ')') as asd FROM access WHERE residency = 9 
    ) as qwe 
) as www
);

PREPARE stmt FROM @queryString;
EXECUTE stmt;
DEALLOCATE PREPARE stmt; 
SET @asd = NULL;
Nach dem Login kopieren
  1. Konstruieren Sie die Abfragezeichenfolge als Variable (@queryString) mithilfe dynamischer Zeichenfolgenverkettung und Unterabfragen.
  2. Bereiten Sie die Anweisung mithilfe der PREPARE-Anweisung mit der erstellten Abfragezeichenfolge vor als Eingabe.
  3. Führen Sie die vorbereitete Anweisung mit EXECUTE aus -Anweisung.
  4. Zuordnung der vorbereiteten Anweisung mit der DEALLOCATE PREPARE-Anweisung freigeben.

Durch die Befolgung dieses Ansatzes kann MySQL dynamische Abfragen ausführen, auch wenn die Abfrage selbst nicht im Voraus bekannt ist.

Das obige ist der detaillierte Inhalt vonWie führe ich dynamische Abfragen 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