MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで2つの列の値を交換しますか?


2つの列を交換するには、以下の交換ロジックを適用できます。

  • 両方の値を追加して、最初の列に保存します

  • 2番目の列から最初の列の値を減算し、それを2番目の列に格納します。

  • 更新された2番目の列から最初の列の値を減算し、最初の列に格納します。

上記のルール構造は次のとおりです。最初の列がaで、2番目の列がbであるとします。

1. a = a+b;
2. b = a-b;
3. a = a-b;

次に、2つの列の値を交換するために、上記のルールを適用します。

テーブルを作成します。

mysql> create table SwappingTwoColumnsValueDemo
   -> (
   -> FirstColumnValue int,
   -> SecondColumnValue int
   -> );
Query OK, 0 rows affected (0.49 sec)

いくつかのレコードを挿入します。

mysql>  insert into SwappingTwoColumnsValueDemo values(10,20),(30,40),(50,60),(70,80),(90,100);
Query OK, 5 rows affected (0.19 sec)
Records: 5  Duplicates: 0  Warnings: 0

交換する前に列の値を確認します。

mysql> select *from SwappingTwoColumnsValueDemo;

以下は出力です。

+------------------+-------------------+
| FirstColumnValue | SecondColumnValue |
+------------------+-------------------+
|               10 |                20 |
|               30 |                40 |
|               50 |                60 |
|               70 |                80 |
|               90 |               100 |
+------------------+-------------------+
5 rows in set (0.00 sec)

列の値を交換する構文。

mysql> UPDATE SwappingTwoColumnsValueDemo
   -> SET FirstColumnValue = FirstColumnValue+SecondColumnValue,
   -> SecondColumnValue = FirstColumnValue-SecondColumnValue,
   -> FirstColumnValue = FirstColumnValue-SecondColumnValue;
Query OK, 5 rows affected (0.15 sec)
Rows matched: 5  Changed: 5  Warnings: 0

列の値が交換されているかどうかを確認します。

mysql> select *from SwappingTwoColumnsValueDemo;

以下は出力です。

+------------------+-------------------+
| FirstColumnValue | SecondColumnValue |
+------------------+-------------------+
|               20 |                10 |
|               40 |                30 |
|               60 |                50 |
|               80 |                70 |
|              100 |                90 |
+------------------+-------------------+
5 rows in set (0.00 sec)

  1. MySQLで列の値をシャッフルしますか?

    要素をシャッフルするには、ORDER BY RAND()を使用する必要があります。まずテーブルを作成しましょう- mysql> create table DemoTable1557    -> (    -> SubjectId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> SubjectName varchar(20)    -> ); Query OK, 0 rows affected (0.91 sec) 挿入コマンド-を使用して

  2. MySQLは空白値の列をNULLに更新します

    このために、UPDATEコマンドと一緒にIF()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1601    -> (    -> FirstName varchar(20) ,    -> LastName varchar(20)    -> ); Query OK, 0 rows affected (0.53 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert