Heim  >  Artikel  >  Datenbank  >  Kann MySQL ein Feld mithilfe eines dynamisch generierten Feldnamens auswählen?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-19 16:44:02263Durchsuche

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 ; 

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

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;

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!

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