1

これはより理論的な問題です。さまざまなテキストフィールド、ドロップダウンボックスなどを含むページがあります。各ユーザーには、参照しているこの更新ページを介して更新できる「独自のページ」があります。彼は自分の選択でフィールドを更新します。約 30 の変数 (すべてのフィールドが入力されている場合) を「プレビュー ページ」に渡します。プレビュー ページが気に入ったら、プレビュー ページの下部にある「更新」ボタンをクリックすると、さまざまな変数がすべて適切な MySQL テーブルに更新され、他のユーザーが見る「自分のページ」が動的に更新されます。(この説明が明確でない場合はお知らせください)。

この情報を初めて挿入するのは簡単です。ただし、ユーザーが自分のページのいくつかのフィールドのみを後で更新したい場合、ここで混乱します。ユーザーが更新したいページ上のフィールドのみへの更新を認識するように MySQL 更新クエリを動的にするにはどうすればよいですか (他のフィールドを空白のままにして、それらの列の古い情報をそのままにして、それらは無視されます)更新クエリ)。

私が求めていることが意味をなさない場合はお知らせください。もう一度試します。

ご協力いただきありがとうございます。

4

1 に答える 1

0

これを行う最も簡単な方法は次のとおりです。

UPDATE MyTable m SET m.f1 = COALESCE(input1,m.f1), m.f2 = COALESCE(input2,m.f2), ....
WHERE m.id = key;

COALESCE最初の非 null 値を返します (またはnullすべての値が null の場合)。

デフォルトを強制する場合は、既存のフィールド値の後にデフォルト値を挿入できることに注意してください。
そのようです:

UPDATE MyTable m SET m.f1 = COALESCE(input1,m.f1,default1), m.f2 = COALESCE(input2,m.f2,default2), ....
WHERE m.id = key;

参照: MySQL: COALESCE の使用方法
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_coalesce

于 2013-02-10T09:23:59.193 に答える