MySQL は動的に生成されたフィールド名を使用してフィールドを選択できますか?

Mary-Kate Olsen
リリース: 2024-11-19 16:44:02
オリジナル
262 人が閲覧しました

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

MySQL での動的フィールド名の選択

MySQL では、文字列として保存された動的フィールド名に基づいてフィールドを選択することは可能ですか?

オリジナル質問:

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 ; 
ログイン後にコピー

回答:

文字列に基づいてフィールドを動的に選択できるかどうかは、文字列が配置されている場所によって異なります。

外部の文字列アプリケーション:

フィールド名の文字列が外部アプリケーション内にある場合、MySQL ステートメントの構築は簡単です。

MySQL テーブル内の文字列:

ただし、フィールド名の文字列がMySQLテーブルに格納されている場合、直接選択することはできません。 MySQL には eval() のような評価関数がありません。この操作は、次のアプローチでは実行できません:

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
ログイン後にコピー

プリペアド ステートメントの使用:

回避策として、プリペアド ステートメントを使用できますが、注意が必要です。ハッキーなアプローチです。

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

PREPARE stmt FROM @s;
EXECUTE stmt;
ログイン後にコピー

以上がMySQL は動的に生成されたフィールド名を使用してフィールドを選択できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート