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

MySQLでブール値(BOOLEAN)を更新する方法を解説

MySQLでブール値を更新するには?

MySQLでは、SET句を使うことでブール値(BOOLEAN型)のカラムを簡単に更新できます。MySQLではBOOLEANは実質的にTINYINT(1)として扱われるため、true / false のほか、1 / 0 や否定演算子 ! を使った反転も可能です。

ここでは、サンプルテーブルを作成し、実際にブール値を更新する手順を順番に見ていきましょう。

ステップ1:テーブルを作成する

まず、isMarried というブール値カラムを持つテーブルを作成します。

mysql> create table DemoTable
    (
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, isMarried boolean
    );
Query OK, 0 rows affected (0.58 sec)

ステップ2:レコードを挿入する

INSERT コマンドを使って、いくつかのレコードを追加します。

mysql> insert into DemoTable(isMarried) values(false);
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable(isMarried) values(true);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable(isMarried) values(true);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable(isMarried) values(false);
Query OK, 1 row affected (0.13 sec)

ステップ3:データを確認する

SELECT 文で全レコードを表示してみましょう。

mysql> select *from DemoTable;

実行すると、次のような結果が得られます。

+----+-----------+
| Id | isMarried |
+----+-----------+
|  1 |         0 |
|  2 |         1 |
|  3 |         1 |
|  4 |         0 |
+----+-----------+
4 rows in set (0.00 sec)

このように、ブール値は 1(true)と 0(false)として保存されていることが確認できます。

ステップ4:ブール値を更新する

それでは、ブール値を更新するクエリを見ていきましょう。特定の行の値を反転させたい場合は、否定演算子 ! を使うと便利です。

mysql> update DemoTable set isMarried = !isMarried where Id=4;
Query OK, 1 row affected (0.17 sec)
Rows matched: 1 Changed: 1 Warnings: 0

このクエリでは、Id = 4 の行に対して isMarried の現在の値を論理的に反転(0なら1に、1なら0に)しています。

更新結果を確認する

もう一度テーブルの内容を表示してみます。

mysql> select *from DemoTable;

以下が出力結果です。Id = 4 のブール値が更新されているのがわかります。

+----+-----------+
| Id | isMarried |
+----+-----------+
|  1 |         0 |
|  2 |         1 |
|  3 |         1 |
|  4 |         1 |
+----+-----------+
4 rows in set (0.00 sec)

まとめ

上記の出力結果を見ると、Id = 4 の行の値が 0 から 1 に更新されていることが確認できます。

このように、MySQLでブール値を更新するには UPDATE ... SET を使います。直接 true / false(または 1 / 0)を指定するだけでなく、!isMarried のように否定演算子を使えば、現在の値をワンステップで反転させることもできるので、トグル(ON/OFF切り替え)処理などに非常に便利です。

  1. MySQLでn番目に高い値を取得する方法をわかりやすく解説

    MySQLでn番目に高い値を取得する方法MySQLでテーブル内のn番目に高い値を取得したい場合、ORDER BY句とLIMIT句を組み合わせることで簡単に実現できます。基本構文n番目に高い値を選択するための基本的な構文は以下の通りです。SELECT DISTINCT(カラム名) FROM テーブル名 ORDER BY カラム名 DESC LIMIT (n番目の値 - 1), 1;ポイントはLIMIT句の使い方です。第1引数に「(n番目 - 1)」を指定することで、降順に並べ替えた結果から指定した位置のレコードを1件だけ取得できます。また、DISTINCTを使用することで、重複する値を除外した上

  2. MySQLでタイムスタンプ列に基づいてデータを選択し、真偽値を設定する方法

    MySQLでタイムスタンプ列に基づいてデータを選択し、真偽値を設定する方法 MySQLではIF()関数を使うことで、タイムスタンプ列の値に基づいてデータを選択し、結果を真偽値(1または0)として取得できます。この記事では、実際のサンプルコードを交えながら手順を詳しく解説します。 まず、現在の日付を確認しておきましょう。 mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-12-10 | +------------+ 1 row in set (0.00 sec) テーブルの作成 はじめに