當查詢沒有回傳行時傳回預設值
使用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中文網其他相關文章!