Frage:
Kann man einen Feldnamen in MySQL basierend auf a dynamisch abrufen? Variable?
Hintergrund:
In manchen Szenarien, etwa beim Arbeiten mit Triggern, kann es notwendig sein, ein Feld, dessen Name vorher nicht bekannt ist, dynamisch zu aktualisieren.
Code Beispiel:
SET fieldname = NEW.`name`; UPDATE table SET fieldname = 1 ;
Antwort:
In MySQL ist der direkte Zugriff auf Feldnamen aus Variablen nicht möglich. Es gibt jedoch zwei Methoden, um diesem Bedarf gerecht zu werden:
1. Externe Konstruktion (wenn sich die Variable in einer externen Anwendung befindet):
Wenn der Feldname in einer externen Anwendung wie PHP verfügbar ist, können Sie die MySQL-Anweisung dynamisch erstellen.
Beispiel:
$fieldName = "fieldname"; $sql = "SELECT $fieldName FROM table";
2. Vorbereitete Anweisungen (für in MySQL gespeicherte Variablen):
Wenn der Feldname in einer MySQL-Tabelle gespeichert ist, können Sie vorbereitete Anweisungen verwenden, um das gewünschte Verhalten zu erreichen.
Codebeispiel:
SELECT columnname from queries into @colname; SET @table = 'mytable'; SET @s = CONCAT('SELECT ',@colname,' FROM ', @table); PREPARE stmt FROM @s; EXECUTE stmt;
Hinweis: Vorbereitete Anweisungen erfordern einen sorgfältigen Umgang mit Variablenersetzungen und potenziellem SQL Sicherheitslücken bei der Injektion.
Das obige ist der detaillierte Inhalt vonWie kann ich Feldnamen in MySQL-Abfragen dynamisch abrufen und verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!