テーブル構造を変更せずに MySQL の列の値を交換する
質問:
交換できますかテーブル構造を変更せずに、MySQL テーブルの 2 つの列の値を取得しますか?ユーザー権限の制限のため、カラムの名前を変更することはできません。
答え:
はい、次のコマンドを使用してテーブル構造を変更せずに MySQL のカラム値を交換することができます。更新クエリ。以下に 3 つのメソッドを示します。
メソッド 1:
UPDATE table SET x=y, y=@temp WHERE (@temp:=x) IS NOT NULL;
このメソッドは、更新中に一時変数を使用して 1 つの列の値を保持します。両方の列が NULL 以外の値を持つ必要があります。
方法 2:
UPDATE table SET x=(@temp:=x), x = y, y = @temp;
この方法はより洗練されていると考えられており、NULL 値と非 NULL 値の両方を処理します。 .
メソッド3:
UPDATE table s1, table s2 SET s1.x=s1.y, s1.y=s2.x WHERE s1.id=s2.id;
このメソッドは自己結合を使用して列の値を交換するため、主キーを持つテーブルに適しています。 NULL 値も処理します。
注:
各メソッドには、独自の利点と制限があります。特定の要件とデータの特性に最も適した方法を選択してください。
以上がテーブル構造を変更せずに MySQL で列の値を交換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。