MySQL IFNULL判定問題の解決方法

MySQL IFNULL判定問題の解決方法

問題: mybatis によって返される null 型のデータが消え、フロントエンドの表示にエラーが発生する

アイデア:クエリ結果が null 値の場合、空の文字列に変換する必要があります。もちろんフロントエンドで判断することも可能ですが、この機能はバックグラウンドで実装する必要があります。

解決:

クエリを実行するには、次の方法を使用します。

SELECT IFNULL(sex,'') AS sex FROM user --性別の値が null の場合、空の文字列が割り当てられます。

ただし、クエリ ステートメント自体が null の場合、フロント エンドに返される内容も null のままであり、コード内で判断する必要があります。
例えば:

SELECT IFNULL(sex,'') AS sex FROM user WHERE id=100

このステートメント自体の戻り結果は null なので、IFNULL 関数は実行されず、最終的な戻り結果は当然 null になります。

したがって、私のアプローチは、コードに判断を追加することです。

ansList == null || ansList.size() == 0) の場合{...}

MYSQL IFNULL(expr1,expr2) 関数

expr1 が NULL でない場合、IFNULL() は expr1 を返し、それ以外の場合は expr2 を返します。 IFNULL() は、使用されるコンテキストに応じて数値または文字列値を返します。

mysql> IFNULL(1,0); を選択します。  
           -> 1  
mysql> IFNULL(0,10) を選択します。  
           -> 0  
mysql> IFNULL(1/0,10) を選択します。  
           -> 10  
mysql> IFNULL(1/0,yes); を選択します。  
           -> はい

IF(expr1,expr2,expr3) 関数

expr1 が TRUE (expr1<>0 かつ expr1<>NULL) の場合、IF() は expr2 を返し、それ以外の場合は expr3 を返します。 IF() は、使用されるコンテキストに応じて数値または文字列値を返します。

mysql> IF(1>2,2,3) を選択します。  
           -> 3  
mysql> IF(1<2,yes,no); を選択します。  
           -> はい  
mysql> IF(strcmp(test,test1),yes,no); を選択します。  
           -> いいえ  
  
expr1 は整数値として評価されます。つまり、浮動小数点値または文字列値をテストする場合は、比較演算子を使用する必要があります。    
  
mysql> IF(0.1,1,0); を選択します。  
           -> 0  
mysql> IF(0.1<>0,1,0); を選択します。  
           -> 1

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySql における無効な Null セグメント判定と IFNULL() 失敗の解決策
  • MySQL の null (IFNULL、COALESCE、NULLIF) に関する知識ポイントのまとめ
  • MySQL で null を置き換える IFNULL() および COALESCE() 関数の詳細な説明
  • MySQL の nvl() 関数に似た ifnull() 関数についての簡単な説明
  • MySql での IFNULL、NULLIF、ISNULL の使用法の詳細な説明
  • SQL Server の ISNULL 関数と MySQL の IFNULL 関数の使用法について簡単に説明します。
  • MySQL の IFNULL、IF、CASE の違いの紹介
  • MySQL ifnull のネスト使用手順

<<:  Linux コマンドラインで他のユーザーと通信する方法

>>:  MySQLがクエリキャッシュをキャンセルした理由

推薦する

システム エラー 1067 のため、MySQL 5.6 解凍バージョン サービスを開始できません

今日午後ずっと私を悩ませたバグを記録する半月前から始めましょう。それから.................

ストリーマーボタンの効果を実現するCSS3アニメーション

CSS3 を学習する過程で、CSS3 属性を使用すると多くのクールな効果を簡単に実現できることが分か...

HTML で複数のクラス属性を定義する場合の無効な解決策

HTML を記述する過程で、クラス属性に複数の値を定義することがよくありますが、定義した値が無効であ...

TomcatをダウンロードしてLinuxにインストールする詳細な手順

Linux に触れたばかりの方には、この内容が役に立つかもしれません。Linux にしばらく触れてい...

JavaScriptはスクロールバーの位置を取得し、ページをアンカーポイントまでスライドします。

序文この記事は、私が最近仕事で遭遇した問題を記録したものです。アプリネイティブとフロントエンドのh5...

MySQLの複合インデックス方式の詳細な説明

どの DBMS でも、インデックスは最適化にとって最も重要な要素です。データ量が少ない場合、適切なイ...

数百万のデータボリュームに対する MySQL ページングクエリ方法とその最適化の提案

データベース SQL の最適化はよくある問題です。何百万ものデータ ボリュームに対してページング ク...

Zabbixのインストールと展開の詳細な説明

序文Zabbix は最も主流のオープンソース監視ソリューションの 1 つです。導入自体は難しくありま...

Ubuntu でホームディレクトリを新しいパーティションに移行する詳細なチュートリアル

ユーザーのホーム ディレクトリがどんどん大きくなってきたら、ホーム ディレクトリを新しいパーティショ...

Docker で Selenium グリッド分散環境を構築する実用的な方法

最近、Zoom ビデオ会議をテストし、100 人が同時に会議に参加することをシミュレートする必要があ...

ページに間隔を空けてグリッドレイアウトを完璧に実装する方法

典型的なレイアウト例上の写真のように、正方形の真ん中に一定の隙間があり、その隙間は固定されています。...

MySQL で distinct メソッドを使用する詳細な例

明確な意味: distinctive は、一意のレコードの数を照会するために使用されます。つまり、d...

MySQL バッチ追加および保存メソッドの例

ストレステストにログインする際には、多くの異なるユーザーが必要となり、データベースに新しいデータを追...

Docker で MySQL クラスターを構築する方法の例

Docker の基本的な手順:アップデートパッケージ yum -y アップデートDocker仮想マシ...

MySQLスローログクエリの詳細な説明

遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...