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

MySQL Mass Update with CASE WHEN / THEN / ELSE?


CASE WHEN / THEN/ELSEを使用した一括更新の構文は次のとおりです-

UPDATE yourTableName set yourColumnName=case when yourColumnName=Value1 then anyUpdatedValue1
when yourColumnName=Value2 then anyUpdatedValue2
when yourColumnName=Value3 then anyUpdatedValue3
when yourColumnName=Value4 then anyUpdatedValue4
else yourColumnName
end;

上記の構文を理解するために、最初にテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table CaseUpdateDemo
-> (
-> Id int,
-> Name varchar(100)
-> );
Query OK, 0 rows affected (0.78 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into CaseUpdateDemo values(1,'John');
Query OK, 1 row affected (0.17 sec)

mysql> insert into CaseUpdateDemo values(2,'Carol');
Query OK, 1 row affected (0.27 sec)

mysql> insert into CaseUpdateDemo values(3,'Mike');
Query OK, 1 row affected (0.11 sec)

mysql> insert into CaseUpdateDemo values(4,'Bob');
Query OK, 1 row affected (0.15 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from CaseUpdateDemo;

出力

+------+-------+
| Id   | Name  |
+------+-------+
| 1    | John  |
| 2    | Carol |
| 3    | Mike  |
| 4    | Bob   |
+------+-------+
4 rows in set (0.00 sec)

これで、上記で説明したクエリを記述して、Case WHENTHENELSEで列IDを更新できます。クエリは次のとおりです-

mysql> update CaseUpdateDemo set Id=case when Id=1 then 1001
-> when Id=2 then 1002
-> when Id=3 then 1003
-> when Id=4 then 1004
-> else Id
-> end;
Query OK, 4 rows affected (0.15 sec)
Rows matched: 4 Changed: 4 Warnings: 0

これで、selectステートメントを使用して、ID列のテーブルが更新されているかどうかを確認できます。クエリは次のとおりです-

mysql> select *from CaseUpdateDemo;

出力

+------+-------+
| Id   | Name  |
+------+-------+
| 1001 | John  |
| 1002 | Carol |
| 1003 | Mike  |
| 1004 | Bob   |
+------+-------+
4 rows in set (0.00 sec)

  1. PHP / MySQLでTimeを使用していますか?

    PHP / MySQLで時間を処理するには、strtotime()関数を使用できます。同じ-のPHPコードは次のとおりです。 $timeValue='8:55 PM'; $changeTimeFormat = date('H:i:s', strtotime($timeValue)); echo("The change Format in 24 Hours="); echo($changeTimeFormat); PHPコードのスナップショットは次のとおりです- これが出力です。 これが元の時刻を取得するためのMySQLクエリ

  2. [FIX]「unix:///var/run/docker.sock」でDockerデーモンに接続できない

    Dockerは、コンテナーを使用してアプリケーションを簡単に作成、デプロイ、実行できるため、ますます人気が高まっています。コンテナを使用すると、開発者は、アプリケーションを1つの完全なパッケージとしてデプロイする前に、そのすべてのライブラリと依存関係を含むパッケージを作成できます。 インストール Linux上のDockerは比較的簡単です。ターミナルでいくつかのコマンドを実行するだけで、準備完了です。 ただし、インストールが成功した後でも、これはすべてのユーザーで同じではない場合があります。最も一般的に発生するエラーの1つは、次のとおりです。 Dockerデーモンに接続できません(unix