MySQLで判定文を書く方法のまとめ

MySQLで判定文を書く方法のまとめ

MySQL で判断文を書く方法:

方法1. CASE関数

case関数の構文:

CASE条件
値1の場合、値1が返される
値2の場合、値2を返す
値3の場合、値3が返される
…
ELSE デフォルト値
終わり

例:

SELECT username,(CASE sex WHEN 1 THEN '男性' WHEN 2 THEN '女性' ELSE '不明' END) as sex FROM user;

クエリ結果は次のとおりです。

e08a6ceb7c5f565e980547c90d0981c.png

方法2. IF()関数

CASE 関数は、非常に複雑な論理判断を実装できます。条件が満たされている場合は A、そうでない場合は B などの単純な判断ロジックを実装すると、CASE 関数が肥大化して見えるようになります。 MYSQL は、このような論理的判断を簡素化するために IF() 関数を提供しています。その構文形式は次のとおりです: IF(条件,A,B)

条件が真であれば A を返し、そうでない場合は B を返します。したがって、条件が複数ある場合は、IF 関数は使用できません。 IF() は数値または文字列を返します。

select username,if(sex=1,'男','女') as sex from user;

クエリ結果は次のとおりです。

57558ec379007199e539b0a2a063727.png

ご覧のとおり、条件では sex=1 が男性で、その他は女性であるため、ユーザー名 zhangsan は女性として表示されます。したがって、IF 関数は 2 つの状況を判断するためにのみ使用されます。 MySQL には IFNULL(value1, value2) 関数もあり、これは通常 NULL 値を置き換えるために使用されます。NULL 値は数値演算に参加できないことはご存じのとおりです。

方法3. 文字列操作 ELT()

文法:

ELT(N,文字列1,文字列2,文字列3,...)

N = 1 の場合は str1 を返し、N = 2 の場合は str2 を返します。 N が 1 未満または引数の数より大きい場合は、NULL を返します。

SELECT username,ELT(sex,'男','女','未知') as sex FROM user

クエリ結果は次のとおりです。

2cb2e8899c8d85f8f8c7feeb24b90ae.png

コンテンツ拡張子:

mysql 条件文

たとえば、ビジネス シナリオでは、ユーザーには複数の状態 (1: 有効、2: 無効、3: その他) があり、クエリには条件ステートメントが必要です。

文法:

CASE フィールド WHEN `条件 1` THEN `結果 1`
 `条件 2` のとき、`結果 2`
 いつ ...
 ELSE `その他の結果`
終わり

例:

SELECT ID,名前,
(CASEステータス
	1 の場合、「有効」 
	2 の場合、「無効」 
それ以外の場合 
END) ASステータス 
ユーザーより

MySQL での判定文の書き方をまとめたこの記事はこれで終わりです。MySQL での判定文の書き方についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLはshow statusを使用してMySQLサーバーのステータス情報を表示します。
  • MySQLでテーブル情報を取得する方法 テーブルステータスの表示
  • MySQL テーブルを作成するためによく使用される SQL ステートメントの概要
  • MySQLのUPDATE文の落とし穴を記録する
  • Navicat PremiumはMySQLデータベースを操作します(SQL文を実行します)
  • 2 つの MySQL ユーザー削除ステートメント (delete user と drop user) の違い
  • MySQL データベースのステートメント ワイルドカード ファジー クエリの概要
  • MySQLデータの重複チェックと重複排除の実装ステートメント
  • MySQL でよく使われる連結文のまとめ
  • MySQL SHOW STATUSステートメントの使用

<<:  Docker イメージを削除できません エラー: そのようなイメージはありません: xxxxxx 解決策

>>:  一般的な Nginx のテクニックと例の概要

推薦する

InnoDB テーブルの BLOB 列と TEXT 列のストレージ効率を最適化します。

まず、MySQL InnoDB エンジンのストレージ形式に関する重要なポイントをいくつか紹介します。...

element-plus でオンデマンドインポートとグローバルインポートを実装する方法

目次オンデマンドインポート:グローバルインポートオンデマンドインポート:プラグインをインストールする...

Nginx コンテンツ キャッシュと共通パラメータ設定の詳細

使用シナリオ:プロジェクトのページでは、頻繁に変更されず、個別のカスタマイズも伴わない大量のデータを...

BootStrap グリッド間に隙間を残す解決策

目次[例を見る]: 【本来の効果は以下の通り】理由は次のとおりです。 【解決】:要約するBootSt...

IDEA 構成の Tomcat 起動エラーの問題を解決する

異なるサーブレット パスを構成するときに、次の 2 つのエラーが発生しました。 java.lang....

MySQL シリーズ: redo ログ、undo ログ、binlog の詳細な説明

取引の実施REDO ログはトランザクションの永続性を保証し、UNDO ログはトランザクションのロール...

JavaScriptの知識ポイントの詳しい説明

目次1. JavaScriptの基礎2. 基本的なJavaScript構文3. JavaScript...

MySQL で 2 つのセットの交差/差/和を取得する方法

MySQL の一般的なシナリオ: 2 つのデータ セットの交差と差を取得するステップ1. 2つのコレ...

Sublime Text - ブラウザのショートカットキーを設定するための推奨方法

コード効果を異なるブラウザで表示することはよくあることなので、異なるショートカットキーを使用して対応...

Raspberry Pi msmtp と mutt のインストールと設定のチュートリアル

1. muttをインストールするsudo apt-get install mutt 2. msmtp...

Linux で PCIe のバージョンと速度を確認する方法

PCIE には 4 つの異なる仕様があります。下の図でそのうちの 2 つを見てみましょう。マザーボー...

Ubuntu 18.04 に Nvidia グラフィック カード ドライバーをインストールするチュートリアル (画像とテキスト付き)

0. 事前準備BIOS でセキュア ブートを無効にします。無効にしないと、サードパーティ ソースを...

Docker の MySQL コンテナのタイムゾーン問題の修正

序文Ahhang が Springboot プロジェクトを開発していたとき、フロントエンドから検証コ...

Mysqlトランザクション処理の詳細な説明

1. MySQLのトランザクションの概念MySQL トランザクションは主に、操作量が多く複雑度の高い...

CSS における @ の使用法の概要 (例と説明付き)

@ ルールは、CSS の実行または動作に関する指示を提供する宣言です。各宣言は @ で始まり、その...