Heim >Datenbank >MySQL-Tutorial >Kann MySQL einen String als Abfrage wie eval() von JavaScript ausführen?

Kann MySQL einen String als Abfrage wie eval() von JavaScript ausführen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-29 09:35:16257Durchsuche

Can MySQL Execute a String as a Query Like JavaScript's eval()?

Kann MySQL einen String als Abfrage ausführen?

Frage:

In einem MySQL In einer Umgebung hat sich der Versuch, eine gespeicherte Prozedur auszuführen, die einen Varchar-Wert als Abfrage über EXEC oder CALL übergibt, als erfolglos erwiesen. Gibt es ein MySQL-Äquivalent zur Eval-Funktion von JavaScript, das dies möglich machen würde?

Antwort:

Ja, die folgende Technik bietet eine MySQL-Implementierung ähnlich der Eval-Funktion von JavaScript:

  1. Definieren Sie eine SQL-Variable (@queryString) mit CONCAT, um die Abfragezeichenfolge dynamisch aus dem Varchar zu generieren Parameter.
  2. Bereiten Sie eine Anweisung (stmt) basierend auf @queryString mit PREPARE vor.
  3. Führen Sie die vorbereitete Anweisung (stmt) mit EXECUTE aus.
  4. Geben Sie die Zuordnung der vorbereiteten Anweisung mit DEALLOCATE PREPARE frei .
  5. Setzen Sie die SQL-Variable (@asd) auf zurück NULL.

Zum Beispiel:

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;

Das obige ist der detaillierte Inhalt vonKann MySQL einen String als Abfrage wie eval() von JavaScript ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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