結合を使用するときに、存在しない SQL 行のデフォルト値を返す方法は?

DDD
リリース: 2024-11-01 12:23:30
オリジナル
583 人が閲覧しました

How to Return a Default Value for Absent SQL Rows When Using Joins?

存在しない SQL 行のデフォルト値を返す方法

結合された 2 つのテーブル show と show から情報を取得するアクティブなクエリがあるとします。特定の基準に基づいてスケジュールを設定します。クエリに一致する行がない場合、空の結果ではなくデフォルト値が返されるようにするにはどうすればよいですか?

解決策の 1 つは、クエリで IFNULL() または COALESCE() 関数を利用することです。これらの関数は 2 つの引数を取ります。

IFNULL(expression, default_value)
COALESCE(expression, default_value)
ログイン後にコピー

expression は、無効かどうかをチェックする値を指し、default_value は、expression が null の場合に返す値です。

例:

<code class="sql">SELECT IFNULL(`file`, 'default.webm') AS `file`
FROM `show`, `schedule`...</code>
ログイン後にコピー

一致する行がない場合、このクエリは 'default.webm' を返します。

ただし、単一行のみを取得する特定のケースではでは、集計関数を利用して、一致する行がない場合に null 値を確実に返すことができます。

<code class="sql">SELECT IFNULL(MIN(`file`), 'default.webm') `file` 
FROM `show`, `schedule` 
WHERE `channel` = 1 AND `start_time` <= UNIX_TIMESTAMP() 
AND `start_time` > UNIX_TIMESTAMP()-1800 AND `show`.`id` = `schedule`.`file` 
ORDER BY `start_time` DESC LIMIT 1</code>
ログイン後にコピー

MIN() を使用すると、レコードが選択されていない場合に確実に null 値が返されます。その後、IFNULL() は null 値をデフォルト値に置き換え、クエリが常に空ではない結果を返すようにします。

以上が結合を使用するときに、存在しない SQL 行のデフォルト値を返す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!