Heim > Datenbank > MySQL-Tutorial > Hauptteil

Kann MySQL ein Feld mithilfe eines dynamisch generierten Feldnamens auswählen?

Mary-Kate Olsen
Freigeben: 2024-11-19 16:44:02
Original
262 Leute haben es durchsucht

Can MySQL Select a Field Using a Dynamically Generated Field Name?

Dynamische Feldnamenauswahl in MySQL

Ist es in MySQL möglich, ein Feld basierend auf einem dynamischen Feldnamen auszuwählen, der als Zeichenfolge gespeichert ist? ?

Ursprüngliche Frage:

is it possible to select field which name is string?

SELECT 'fieldname' FROM table

i need this for trigger to have dynamic field names
something like

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1 ; 
Nach dem Login kopieren

Antwort:

Ob es möglich ist, ein Feld dynamisch basierend auf a auszuwählen Zeichenfolge hängt davon ab, wo sich die Zeichenfolge befindet.

Zeichenfolge in externer Anwendung:

Wenn sich die Feldnamenzeichenfolge in Ihrer externen Anwendung befindet, ist das Erstellen der MySQL-Anweisung unkompliziert.

Zeichenfolge in MySQL-Tabelle:

Wenn die Feldnamenzeichenfolge jedoch in einer MySQL-Tabelle gespeichert ist, ist eine direkte Auswahl nicht möglich. MySQL verfügt nicht über eine Auswertungsfunktion wie eval(). Dieser Vorgang ist mit dem folgenden Ansatz nicht möglich:

Suppose you have a table queries with a field columnname that refers to one of the column names in the table mytable. There might be additional columns in queries that allow you to select the columnname you want.

INSERT INTO queries  (columname) VALUES ("name")
SELECT (select columnname from queries) from mytable
Nach dem Login kopieren

Verwendung vorbereiteter Anweisungen:

Als Workaround können Sie vorbereitete Anweisungen verwenden, seien Sie jedoch vorsichtig ein hackiger Ansatz.

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

Das obige ist der detaillierte Inhalt vonKann MySQL ein Feld mithilfe eines dynamisch generierten Feldnamens auswählen?. 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