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キーワードを使用するのが良いでしょう。
-
C言語パズル:演算子なしで2つの数値を連結して「9648」を作る方法
今回は、C言語のパズル問題を1つ紹介します。2つの数値「48」と「96」が与えられたとしましょう。ここで、1つ目の数値を2つ目の数値の後ろに連結して、「9648」という結果を得たいと思います。 問題の条件 ただし、この問題には厳しい制約があります。 論理演算を使用してはならない 算術演算(加算・乗算など)を使用してはならない 文字列に関する操作を使用してはならない 定義済みのライブラリ関数も呼び出せない 一見すると不可能に思えますが、実はとても簡単に解決できるのです。 解決策:トークン連結演算子(##) 鍵となるのが、C言語のトークン連結演算子(Token Pasting Operator
-
PythonでMySQLのSQL LIKE演算子を使う方法をわかりやすく解説
LIKEはMySQLにおける演算子の一つで、WHERE句と組み合わせて使用することで、テーブル内から特定のパターンに一致するデータを検索できます。例えば、「a」で始まる値をテーブルから探したい場合などに、LIKE演算子が活用されます。LIKE句では、次の2つのワイルドカード文字を使用できます。%(パーセント)― 0文字、1文字、または複数の任意の文字列を表します。_(アンダースコア)― 任意の1文字を表します。ワイルドカードの使用例LIKE a% ― 「a」で始まるすべての値を検索します。LIKE %a ― 「a」で終わるすべての値を検索します。LIKE _a% ― 2文字目が「a」であるすべ