MySQLプロセス関数の一般的な使用例の分析

MySQLプロセス関数の一般的な使用例の分析

この記事では、例を使用して MySQL プロセス関数の一般的な使用方法を説明します。ご参考までに、詳細は以下の通りです。

プロセス関数は、MySQL で比較的一般的なタイプの関数です。ユーザーはこのタイプの関数を使用して、SQL ステートメントで条件付き選択を実装し、効率を向上させることができます。

以下は条件に関連するMySQLプロセス関数の一覧です。

関数関数
IF(式1,式2,式3) expr1が真であればexpr2を返し、そうでない場合はexpr3を返す
IFNULL(式1,式2) expr1がNULLでない場合はexpr1を返し、そうでない場合はexpr2を返します。
CASE WHEN [値1] THEN [結果1]… ELSE [デフォルト] END値がtrueの場合はresult1を返し、そうでない場合はdefaultを返す
CASE [式] WHEN [値1] THEN [結果1]… ELSE [デフォルト] END exprがvalue1と等しい場合はresult1を返し、そうでない場合はdefaultを返す

次の例では、従業員の分類をシミュレートします。まず、従業員の給与表を作成します。

テーブル salary(userid int, salary Decimal(9,2)) を作成します。

テストデータを挿入する

給与値に(1,1000)、(2,2000)、(3,3000)、(4,4000)、(5,5000)、(1,null)を挿入します。

データは以下のとおりです

mysql> 給与から * を選択します。
+--------+---------+
| ユーザーID | 給与 |
+--------+---------+
| 1 | 1000.00 |
| 2 | 2000.00 |
| 3 | 3000.00 |
| 4 | 4000.00 |
| 5 | 5000.00 |
| 1 | NULL |
+--------+---------+
セット内の 6 行 (0.00 秒)

次に、この表を使用して各機能の用途を紹介します。

IF(expr1, expr2, expr3) 関数: ここでは、月給が 2,000 元を超える従業員は高給と見なされ、「高」で表されます。一方、月給が 2,000 元未満の従業員は低給と見なされ、「低」で表されます。

mysql> 給与から if(salary>2000, 'high', 'low') を選択します。    
+--------------------------------+
| if(給与>2000, '高', '低') |
+--------------------------------+
| 低い |
| 低い |
| 高い |
| 高い |
| 高い |
| 低い |
+--------------------------------+
セット内の 6 行 (0.00 秒)

IFNULL(expr1, expr2) 関数: この関数は、通常、NULL 値を置き換えるために使用されます。NULL 値は数値演算に参加できないことはご存じのとおりです。次のステートメントは、NULL 値を 0 に置き換えます。

mysql> 給与から ifnull(給与,0) を選択します。
+------------------+
| ifnull(給与,0) |
+------------------+
| 1000.00 |
| 2000.00 |
| 3000.00 |
| 4000.00 |
| 5000.00 |
| 0.00 |
+------------------+
セット内の 6 行 (0.00 秒)

CASE WHEN [値1] THEN [結果1]… ELSE [デフォルト] END 関数: ここで、case when..then 関数を使用して、上記の例の高給と低給の問題を解決できます。

mysql> select CASE WHEN salary<=2000 THEN 'low' else 'high' END from salary;
+---------------------------------------------------+
| CASE WHEN salary<=2000 THEN 'low' else 'high' END |
+---------------------------------------------------+
| 低い |
| 低い |
| 高い |
| 高い |
| 高い |
| 高い |
+---------------------------------------------------+
セット内の 6 行 (0.00 秒)

CASE [expr] WHEN [value1] THEN[result1]… ELSE[default] END 関数: ここでは、従業員の給与を複数の状況に応じて複数のレベルに分割することもできます。次の例では、高、中、低の 3 つの状況に分割されています。同じことは、より多くの状況に分けることができます。ここでは例は挙げません。興味のある友人は自分でテストすることができます。

mysql> select CASE salary WHEN 1000 THEN 'low' when 2000 THEN 'mid' ELSE 'high' END from salary;
+----------------------------------------------------------------------+
| CASE 給与 WHEN 1000 THEN 'low' when 2000 THEN 'mid' ELSE 'high' END |
+----------------------------------------------------------------------+
| 低い |
| 中 |
| 高い |
| 高い |
| 高い |
| 高い |
+----------------------------------------------------------------------+
セット内の 6 行 (0.00 秒)

MySQL 関連のコンテンツに興味のある読者は、次のトピックを確認してください: 「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQLの共通関数を使用してJSONを処理する方法
  • MySQL の PHP 操作における mysql_fetch_* 関数の一般的な使用方法のチュートリアル
  • Mysql関数呼び出しの最適化の詳細な説明
  • MySQL で sum 関数を使用する例のチュートリアル
  • MySQLセグメンテーション関数substring()の具体的な使用法
  • MySQL DATE_FORMAT関数の使用
  • MySQLの基本の共通機能

<<:  Ubuntu 18.04 で apt-get ソースを変更する方法

>>:  Vueはel-tree遅延読み込みを使用して、追加、削除、変更、クエリ機能を実装します。

推薦する

Centos7のシステム言語を簡体字中国語に変更する方法

例示するシステムを自分でインストールする場合は、通常、システム言語をカスタマイズできます。ただし、ク...

JavaScript オブジェクト (詳細)

目次JavaScript オブジェクト1. 定義2. オブジェクトの分類3. オブジェクトを定義する...

CSS スティッキーフッターのいくつかの実装

「スティッキーフッター」とはいわゆる「スティッキー フッター」は、新しいフロントエンドの概念や技術で...

WeChatアプレットが連携メニューを実現

最近はコース設計を実現するために、フロントエンドも少しやっています。今日はいくつかの機能を実現するた...

JavaScriptでページスクロールアニメーションを実装する

目次レイアウトを作成するCSSスタイルを追加するJavaScript で要素を操作する対象要素を取得...

HTMLのマーキータグは、シームレスなスクロールマーキー効果を実現します。

<marquee> タグはペアで表示されるタグです。最初のタグ <marquee...

Dockerコンテナでの静的ウェブサイトレイアウトの実装

サーバーの配置数日間無料で使用できるクラウドサーバー(Alibaba Cloud、Huawei Cl...

jQueryはアコーディオン効果を実装します

この記事では、アコーディオンを実装するためのjQueryの具体的なコードを参考までに紹介します。具体...

Mysql の主キーと一意キーの違いのまとめ

主キーとは何ですか?主キーは、テーブル内の各タプル (行) を一意に識別するテーブル内の列です。主キ...

この記事では、イベント委任を使用してJavaScriptメッセージボード機能を実装する方法について説明します。

イベント委任を使用してメッセージ ボード機能を実装します。 <!DOCTYPE html>...

Linux ディスクのシーケンシャル書き込みとランダム書き込みの方法

1. はじめに● ランダム書き込みではヘッドがトラックを頻繁に変更するため、効率が大幅に低下します。...

Nginx のアクセス制御とパラメータ調整方法

Nginx グローバル変数Nginx には、$variable 名を通じて使用できるグローバル変数が...

React、Angular、Vueの3つの主要なフロントエンド技術の詳細説明

目次1. 反応する基本的な使い方注目すべき機能クラスコンポーネント仮想DOMライフサイクルメソッドJ...

CSS でハニカム/六角形アトラスを実装するためのサンプルコード

理由は分かりませんが、UIではハニカム効果(手を広げたような効果)のデザインが好まれます。 1. 六...

CentOS6.9 での MySQL 5.7.17 のインストールと設定のチュートリアル

CentOS6.9はMysql5.7をインストールします。参考までに、詳細は次のとおりです。 1. ...