ホームページ >データベース >mysql チュートリアル >SELECT ステートメントを使用して MySQL で Null 以外の値のみを取得するにはどうすればよいですか?

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

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-15 16:32:44854ブラウズ

How Can I Retrieve Only Non-Null Values in MySQL Using SELECT Statements?

MySQL SELECT ステートメント: Null 以外のデータの取得

このガイドでは、SELECT ステートメントを使用して MySQL データベース テーブルから null 以外の値のみを効率的に取得する方法を説明します。 最も単純で一般的な方法は、IS NOT NULL 条件を利用します。

方法 1: IS NOT NULL を使用する

IS NOT NULL 句は、指定された列に NULL 値が含まれる行を直接フィルターで除外します。

例:

<code class="language-sql">SELECT *
FROM your_table
WHERE your_column IS NOT NULL;</code>

方法 2: NOT と Null セーフ等価演算子の使用

MySQL は、NOT 演算子と null セーフ等価演算子 (<=>) を使用した非標準のアプローチをサポートしています。 IS NOT NULL は機能しますが、読みやすさと SQL 標準への準拠を考慮すると、一般的に好まれます。

<code class="language-sql">SELECT *
FROM your_table
WHERE NOT (your_column <=> NULL);</code>

方法 3: 複数の列の UNION ALL

複数の列を持つテーブルの場合、UNION ALL ステートメントは各列から個別に非 null 値を取得する方法を提供します。 この方法は、単一クエリ内の各列で IS NOT NULL を使用するよりも効率的ではありませんが、特定のシナリオでは役立つ可能性があります。

<code class="language-sql">SELECT col1 AS value
FROM your_table
WHERE col1 IS NOT NULL
UNION ALL
SELECT col2
FROM your_table
WHERE col2 IS NOT NULL
-- Add more UNION ALL clauses for additional columns</code>

方法 4: CROSS JOIN と HAVING を使用した CASE ステートメント

より複雑ですが、潜在的に有用なアプローチには、CASE ステートメント、CROSS JOIN、および HAVING 句の使用が含まれます。 この方法は一般に、より単純な方法よりも効率が低くなりますが、代替ソリューションを提供します。

<code class="language-sql">SELECT
    CASE idx
    WHEN 1 THEN col1
    WHEN 2 THEN col2
    END AS value
FROM your_table
CROSS JOIN (
    SELECT 1 AS idx
    UNION ALL
    SELECT 2
) t
HAVING value IS NOT NULL;</code>

your_tableyour_column (または col1col2 など) を実際のテーブル名と列名に置き換えてください。 IS NOT NULL メソッドは、その単純さと効率性の点で一般的に推奨されます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。