Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann ich Feldnamen in MySQL-Abfragen dynamisch abrufen und verwenden?

Susan Sarandon
Freigeben: 2024-11-19 05:30:02
Original
349 Leute haben es durchsucht

How Can I Dynamically Retrieve and Use Field Names in MySQL Queries?

Dynamischer Feldnamenabruf in MySQL

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

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

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

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!

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