データベース レコードの Null 値の処理
データベースをクエリするとき、特定の基準を持つレコードが存在しない状況がよく発生します。デフォルトでは、一致するレコードが見つからない場合、ほとんどのデータベースはエラーを返します。ただし、多くの場合、代わりに null 値を返すことが望ましいです。
次のクエリ例を考えてみましょう:
SELECT idnumber FROM dbo.database WHERE number = '9823474'
指定された数値がテーブルに存在しない場合、クエリは失敗します。代わりに null を返すには、次のようにサブクエリを利用します。
SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber;
これにより、元のクエリがサブクエリ内にカプセル化され、「行なし」を null 値として扱うことができます。この手法は、PostgreSQL、SQLite、SQL Server、MySQL、Oracle、Firebird、DB2、SQLite などのさまざまなデータベースでテストおよび検証されています。
Oracle では、構文はダミーの 1 行テーブルから選択する必要があります。 DUAL:
SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber FROM DUAL;
MySQL と Firebird では、RDB$DATABASE またはそれぞれ SYSIBM.SYSDUMMY1。
このソリューションは、データベース クエリで null 値を処理するためのシンプルで一貫した方法を提供し、コードが有効なレコードと存在しないレコードの両方を適切に処理できるようにします。
以上がデータベース クエリで一致するレコードが見つからない場合に、エラーの代わりに NULL を返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。