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がクエリキャッシュをキャンセルした理由

推薦する

vueはel-tableの列幅の適応を完璧に実現します

目次背景技術的ソリューション具体的な実装要約する背景Element UI は、PC で人気の Vue...

HTMLで境界線を設定する3つの方法の詳細な説明

HTML で境界線を設定する 3 つの方法 境界線の幅: 1px 2px 2px; 境界線のスタイル...

MySQL をベースにしたシンプルな検索エンジンを実装する

目次MySQL ベースの検索エンジンの実装1. ngram全文パーサー2. 全文インデックスを作成す...

TCP 3 回目のハンドシェイク データ転送プロセス図

RFC793 ドキュメントの SYN フラグを持つプロセス パケットはデータを伝送できません。つま...

js+ca​​nvas でコードレイン効果を実現

この記事では、js+ca​​nvasコードの雨効果の具体的なコードを参考までに共有します。具体的な内...

Nginx をインストールして複数のドメイン名を設定する方法

Nginx のインストールCentOS 6.x yum にはデフォルトで nginx ソフトウェア ...

MySQL ストアド プロシージャで if ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...

CSS3+JS による虫眼鏡モードの完璧な実装の詳細説明

約 1 年前、私は「虫眼鏡効果を模倣するいくつかの方法の原理の分析」という記事を書きました。当時、自...

Windows 10 での MySQL 8.0 のダウンロードとインストール構成のグラフィック チュートリアル

この記事では、MySQL 8.0のダウンロードとインストールについてご紹介します。具体的な内容は以下...

ウェブページのドロップダウンリストとdivレイヤーのカバーの問題を選択する

HTML の select 要素に関する質問は、さまざまな場所で提起されています。最近のプロジェクト...

Windows と Linux 間のリモート デスクトップ接続

Linux へのリモート デスクトップ接続といえば、まず VNC の使用を思い浮かべるかもしれません...

MySQL 8.0.13 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.13のインストールと設定のチュートリアルを参考までに紹介します。具...

Mysql-connector-java ドライバのバージョン問題の概要

Mysql-connector-java ドライバのバージョンの問題私のデータベースのバージョンは ...

JavaScript スネーク実装コード

この記事の例では、参考までに貪欲なスネークを実装するためのJavaScriptの具体的なコードを共有...

Linux でネットワーク パケット損失と遅延をシミュレートする方法

netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネ...