MySql における無効な Null セグメント判定と IFNULL() 失敗の解決策

MySql における無効な Null セグメント判定と IFNULL() 失敗の解決策

MySql Nullフィールド判定とIFNULL失敗処理

ps: (プロセスを表示したくない場合は、SQL の外側に選択を追加するだけです)

select a,b,c from table group by a,b,c //このとき、a,b,cがnullと判定されても問題ありません。select IFNULL(a,0),IFNULL(b,0),IFNULL(3,0) 
from (テーブルから a,b,c を選択し、 a,b,c でグループ化) //これで完了です

この非常にシンプルな表を見てみましょう。

ここに画像の説明を挿入

SQL文を使用してPIDでグループ化し、列を行に変換すると、結果は次のように表示されます。

ここに画像の説明を挿入

IFNULL(SID1,0) や IF( SID1 is null,0,SID1) をどのように表示しても、結果は NULL のままです -.-! 無力感を感じます。

私のSQLはこのように書かれています。MAX関数を使用していない場合は無視してIFNULLだけを見てください。IFNULLを追加したことは明らかです。

選択
			PID、
			MAX(SID = 1 の場合、IFNULL(PNUM ,0) END) AS SID1、
			MAX(SID = 2の場合、IFNULL(PNUM,0)END) AS SID2、
			MAX(SID = 3 の場合、IFNULL(PNUM ,0) END) AS SID3
		から
			(
				選択
					PID、
					SUM(PNUM) PNUM、
					シド
				から
					あ
				グループ化
					ピジョン
			)温度
		グループ化
			温度.PID

しかし、結果はまだ NULL であることに気付きました。次に、IFNULL() が null の場合、対応するフィールドがテーブルに存在し、NULL であることしか判断できないことがわかりましたが、明らかに私のテーブルにはそのようなフィールドがないため、判断できません。

選択後、クエリ内のNULL値はmysqlのis nullおよびIFNULL()では認識されません。

ここまで言っておきましたが、どうやって解決すればいいのでしょうか?

とても簡単です。時計を持っていないなら、ただ買うだけです! (新しいテーブルを作成しますか?) 何を考えていますか?

まず、クエリ内の IFNULL を削除します。効果はありません。

次に、SELECT ステートメントを使用して、結果セットをテーブルとしてクエリします。これは、クエリ対象のテーブルにフィールドが存在し、値が NULL であることに相当します。

選択
	PID、IFNULL(SID1,0) SID1、IFNULL(SID2,0) SID2、IFNULL(SID3,0) SID3
から
	(
		選択
			PID、
			MAX(SID = 1 の場合 PNUM END) AS SID1、
			MAX(SID = 2 の場合 PNUM END) AS SID2、
			MAX(SID = 3 の場合、PNUM END) AS SID3
		から
			(
				選択
					PID、
					SUM(PNUM) PNUM、
					シド
				から
					あ
				グループ化
					ピッド
			)温度
		グループ化
			温度.PID
	) 一時1

ほら、結果が出ましたよハハハハ~

ここに画像の説明を挿入

MySql で IFNULL() を使用する際に発生する問題

ifnull() 関数について

IFNULL(a,b) c

aがnullでない場合、cの値はaである。

aがnullの場合、cの値はbになります。

実際の使用で遭遇した問題

IFNULL(a,b) c

a が null ではなく、空の文字列 ' ' である場合、c の値は空の文字列になります。

実際に望ましい結果は、a が空の文字列または null であり、c の値が b であることです。

解決

代わりにif()関数を使用してください

if(a ='' または a が null,b,a) c

つまり、a が null または空の文字列の場合は c=b、それ以外の場合は c=a になります。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL 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 のネスト使用手順

<<:  HTMLを圧縮しない理由はいくつかある

>>:  HTML におけるブロックコメントの使用に関する詳細な紹介

推薦する

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

この文書はMySQL Server 8.0.3のインストールと設定方法を参考のために記録したものです...

MySQL テーブルデータのインポートとエクスポートの例

この記事では、MySQL テーブル データのインポートおよびエクスポート操作について説明します。ご参...

aタグ内のテキストを非表示にして画像を表示するには?360モードレンダリングに対応

多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...

ノード スキャフォールディングを使用してトークン検証を実装するサーバーを構築する方法

コンテンツスキャフォールディングを使用してノードプロジェクトを素早く構築するデータベースとやり取りす...

mysqlサーバーは--skip-grant-tablesオプションで実行されています

MySQLサーバーは--skip-grant-tablesオプションで実行されているため、このステー...

CSS3 のエラスティック レイアウトでの em の使用の概要: 1em は何ピクセルですか?

私は長い間 CSS を使用してきましたが、Web 要素の関連属性を設定するために常に「px」を使用し...

MYSQL 演算子の概要

目次1. 算術演算子2. 比較演算子3. 論理演算子4. ビット演算子5. 演算子の優先順位1. 算...

Axiosは繰り返しのリクエストをキャンセル

目次序文1. リクエストをキャンセルする方法2. 重複リクエストの判定方法3. 繰り返しリクエストを...

Linux での MongoDB のインストールと設定のチュートリアル

MongoDBインストールYumを使用してインストールすることを選択する1. repoファイルを作成...

React における同期および非同期 setState の問題のコード分析

React は Facebook の社内プロジェクトとして始まりました。 React の出現は革命的...

JavaScriptアップロードファイル制限パラメータケースの詳細な説明

プロジェクトシナリオ: 1. アップロードファイルの制限関数: 1. フロントエンド操作による異常な...

JS にこれがあるのはなぜですか?

目次1. 需要2. 解決策3. 最初の改善4.砂糖を加える5. 理解不能6. 問題点7. オブジェク...

動的な色切り替えの実装コードをサポートするために、CSS で SVG 画像を参照します。

表示する svg 画像を追加すると、React はファイルが見つからないというメッセージを表示します...

MySQL の自動増分主キーに関する詳細な説明

目次特徴保存戦略自己増加の決定自動増分値の変更実行プロセス問題点自動増分ロックロック戦略バッチ挿入の...

MySQL DML言語操作例

追加説明、外部キー: 外部キーを使用しないでください。すべての外部キーの概念はアプリケーション層で解...