当查询没有返回行时返回默认值
当使用 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中文网其他相关文章!