ホームページ > データベース > mysql チュートリアル > MySQL SELECT ステートメントから NULL 値を除外するにはどうすればよいですか?

MySQL SELECT ステートメントから NULL 値を除外するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-15 16:37:43
オリジナル
172 人が閲覧しました

How Can I Exclude NULL Values from MySQL SELECT Statements?

MySQL SELECT クエリでの NULL のフィルタリング

質問: MySQL SELECT ステートメントを使用して null 以外の値のみを取得するにはどうすればよいですか?

標準 MySQL SELECT * ステートメントには、NULL 値を持つ列も含め、すべての列が含まれます。 null 以外のデータのみを取得するには、IS NOT NULL 条件を使用します。

<code class="language-sql">SELECT * 
FROM your_table
WHERE YourColumn IS NOT NULL;</code>
ログイン後にコピー

このクエリは、YourColumnNULL が含まれていない行を返します。 MySQL は、標準 SQL ではありませんが、null セーフな等価演算子の否定もサポートしています。

<code class="language-sql">SELECT *
FROM your_table
WHERE NOT (YourColumn <=> NULL);</code>
ログイン後にコピー

複数の列を処理するには、別の戦略が必要です。 1 つのメソッドでは、複数の SELECT ステートメントと UNION ALL:

を使用します。
<code class="language-sql">SELECT val1 AS val
FROM your_table
WHERE val1 IS NOT NULL
UNION ALL
SELECT val2
FROM your_table
WHERE val2 IS NOT NULL;</code>
ログイン後にコピー

このアプローチでは、各列を個別にチェックし、結果を結合します。 ただし、複数のテーブル スキャンが発生するため、非効率になる可能性があります。

複数のスキャンを回避するには、クロス結合を含む CASE ステートメントを検討してください。

<code class="language-sql">SELECT CASE idx
         WHEN 1 THEN val1
         WHEN 2 THEN val2
       END AS val
FROM your_table
CROSS JOIN (SELECT 1 AS idx UNION ALL SELECT 2) t
HAVING val IS NOT NULL;</code>
ログイン後にコピー

これにより、各行の val1val2 から最初の非 null 値が選択され、それが val 列に割り当てられます。

以上がMySQL SELECT ステートメントから NULL 値を除外するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート