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

MySQLのNOT演算子の使い方|!演算子との違いを解説

MySQLでは、論理否定(NOT)を表現する方法として「!」演算子も使用できますが、同じ結果を得るのであれば「NOT」キーワードを使うことが推奨されます。MySQLには標準でNOTキーワードが用意されているためです。この記事では、実際にテーブルを作成し、NOTキーワードの動作を確認していきます。

サンプルテーブルの作成

まず、動作確認用のテーブルを作成します。

mysql> create table DemoTable1560
    -> (
    -> Value1 int
    -> );
Query OK, 0 rows affected (0.50 sec)

テーブルが正常に作成されました。

レコードの挿入

次に、INSERTコマンドを使ってテーブルにレコードを挿入します。

mysql> insert into DemoTable1560 values(0);
Query OK, 1 row affected (0.16 sec)

値として「0」を1件登録しました。

登録データの確認

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

mysql> select * from DemoTable1560;

実行結果は以下の通りです。

+--------+
| Value1 |
+--------+
|      0 |
+--------+
1 row in set (0.00 sec)

NOTキーワードを使ったクエリ

ここからが本題です。NOTキーワードを二重に適用した場合の動作を確認します。

mysql> select NOT (NOT Value1), NOT NOT Value1, NOT NOT Value1 from DemoTable1560;

実行結果は以下の通りです。

+------------------+----------------+----------------+
| NOT (NOT Value1) | NOT NOT Value1 | NOT NOT Value1 |
+------------------+----------------+----------------+
|               0 |              0 |              0 |
+------------------+----------------+----------------+
1 row in set (0.00 sec)

結果の解説

Value1の値は「0」なので、一度目のNOTで「1」に反転し、二度目のNOTでもとの「0」に戻ります。つまり、NOT NOTは元の値をそのまま返すことになります。このように、MySQLでは!演算子を使わなくても、標準のNOTキーワードだけで同じ論理演算を実現できます。可読性やSQL標準への準拠という観点からも、条件式ではNOTキーワードを使用するのが良いでしょう。

  1. C言語パズル:演算子なしで2つの数値を連結して「9648」を作る方法

    今回は、C言語のパズル問題を1つ紹介します。2つの数値「48」と「96」が与えられたとしましょう。ここで、1つ目の数値を2つ目の数値の後ろに連結して、「9648」という結果を得たいと思います。 問題の条件 ただし、この問題には厳しい制約があります。 論理演算を使用してはならない 算術演算(加算・乗算など)を使用してはならない 文字列に関する操作を使用してはならない 定義済みのライブラリ関数も呼び出せない 一見すると不可能に思えますが、実はとても簡単に解決できるのです。 解決策:トークン連結演算子(##) 鍵となるのが、C言語のトークン連結演算子(Token Pasting Operator

  2. PythonでMySQLのSQL LIKE演算子を使う方法をわかりやすく解説

    LIKEはMySQLにおける演算子の一つで、WHERE句と組み合わせて使用することで、テーブル内から特定のパターンに一致するデータを検索できます。例えば、「a」で始まる値をテーブルから探したい場合などに、LIKE演算子が活用されます。LIKE句では、次の2つのワイルドカード文字を使用できます。%(パーセント)― 0文字、1文字、または複数の任意の文字列を表します。_(アンダースコア)― 任意の1文字を表します。ワイルドカードの使用例LIKE a% ― 「a」で始まるすべての値を検索します。LIKE %a ― 「a」で終わるすべての値を検索します。LIKE _a% ― 2文字目が「a」であるすべ