首頁 > 資料庫 > mysql教程 > SQL查詢沒有傳回行時如何傳回預設值?

SQL查詢沒有傳回行時如何傳回預設值?

Patricia Arquette
發布: 2024-10-29 08:52:30
原創
988 人瀏覽過

How to Return a Default Value When a SQL Query Returns No Rows?

當查詢沒有回傳行時傳回預設值

使用SQL 查詢擷取資料且沒有找到符合的行時,可以傳回預設值而不是空結果很有用。當您想要確保始終顯示某些內容(即使沒有資料可顯示)時,這尤其有用。

考慮以下 SQL 語句:

<code class="sql">SELECT `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>
登入後複製

此查詢嘗試檢索特定通道的下一個計劃項目,但如果沒有找到匹配的行,它將傳回空結果。要傳回預設值,您可以使用 COALESCE 或 IFNULL 函數:

<code class="sql">SELECT COALESCE(`file`, 'default.webm') `file` 
...

SELECT IFNULL(`file`, 'default.webm') `file` 
...</code>
登入後複製

但是,如果未找到行,這些解決方案可能會傳回空結果。為了確保始終傳回預設值,您可以使用聚合函數(例如 MIN())在未選擇記錄時提供 NULL 值。以下語句使用了這種技術:

<code class="sql">SELECT IFNULL(MIN(`file`), 'default.webm') `file` 
...</code>
登入後複製

透過使用 MIN() 函數,可以保證如果沒有選擇任何行,則會傳回 NULL。然後,IFNULL() 函數會將 NULL 值替換為預設值,確保始終顯示某些內容。

以上是SQL查詢沒有傳回行時如何傳回預設值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板