ホームページ  >  記事  >  データベース  >  MySQL クエリでフィールド名を動的に取得して使用するにはどうすればよいですか?

MySQL クエリでフィールド名を動的に取得して使用するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-19 05:30:02334ブラウズ

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

MySQL での動的フィールド名の取得

質問:

variable?

Background:

トリガーを使用する場合など、一部のシナリオでは、名前が事前に不明なフィールドを動的に更新する必要がある場合があります。

コードサンプル:

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1 ; 

回答:

MySQL では、変数からフィールド名に直接アクセスすることはできません。ただし、このニーズに対処するには 2 つの方法があります。

1.外部構築 (変数が外部アプリケーションにある場合):

フィールド名が PHP などの外部アプリケーションで使用できる場合、MySQL ステートメントを動的に構築できます。

例:

$fieldName = "fieldname";
$sql = "SELECT $fieldName FROM table";

2.プリペアド ステートメント (MySQL に保存された変数の場合):

フィールド名が MySQL テーブルに保存されている場合、プリペアド ステートメントを使用して目的の動作を実現できます。

コードサンプル:

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

PREPARE stmt FROM @s;
EXECUTE stmt;

注: 準備されたステートメントでは、変数置換と潜在的な SQL インジェクションの脆弱性を慎重に処理する必要があります。

以上がMySQL クエリでフィールド名を動的に取得して使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。