ホームページ >データベース >mysql チュートリアル >テーブル構造を変更せずに MySQL で列の値を交換するにはどうすればよいですか?

テーブル構造を変更せずに MySQL で列の値を交換するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-07 03:12:10738ブラウズ

How to Swap Column Values in MySQL Without Altering the Table Structure?

テーブル構造を変更せずに 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 サイトの他の関連記事を参照してください。

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