Heim  >  Artikel  >  Datenbank  >  Wie kann ich MySQL-Felder mithilfe von Variablen dynamisch auswählen und aktualisieren?

Wie kann ich MySQL-Felder mithilfe von Variablen dynamisch auswählen und aktualisieren?

Linda Hamilton
Linda HamiltonOriginal
2024-11-23 11:02:34153Durchsuche

How Can I Dynamically Select and Update MySQL Fields Using Variables?

Dynamische Feldauswahl in MySQL basierend auf einer Variablen

In der Datenbankprogrammierung ist es häufig erforderlich, Felder basierend auf Variablenwerten dynamisch auszuwählen. Dies kann besonders in Szenarien nützlich sein, in denen Feldnamen unbekannt sind oder sich dynamisch ändern.

Feldauswahl mithilfe einer Zeichenfolgenvariablen

Frage: Ist es so? Es ist möglich, ein Feld auszuwählen, dessen Name in einer String-Variablen gespeichert ist MySQL?

SELECT 'fieldname' FROM table;

Antwort: Ja, es ist möglich, die MySQL-Anweisung dynamisch mithilfe der Zeichenfolgenvariablen zu erstellen:

SET @fieldname = 'name';
SELECT @fieldname FROM table;

Dynamic Updates Using Feldvariablen

Frage: Wie kann ich Aktualisierungen an einem durchführen? Tabelle mit einer Variablen, die den Feldnamen in MySQL darstellt?

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1;

Antwort: Es ist nicht möglich, eine beliebige Zeichenfolge direkt als Feldnamen in MySQL zu verwenden. Sie können jedoch eine Problemumgehung mithilfe der Funktion „PREPARED STATEMENTS“ von MySQL anwenden:

SELECT columnname FROM queries INTO @colname;
SET @table = 'mytable';
SET @s = CONCAT('SELECT ', @colname, ' FROM ', @table);

PREPARE stmt FROM @s;
EXECUTE stmt;

Damit können Sie eine vorbereitete Anweisung mit einem dynamischen Feldnamen erstellen, der auf dem in der Variablen @colname gespeicherten Wert basiert.

Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Felder mithilfe von Variablen dynamisch auswählen und aktualisieren?. 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