【发布时间】:2011-09-18 04:39:54
【问题描述】:
使用 php 和 mysql 5.x。我目前在我网站的某个部分加载横幅图片,如下所示:
SELECT * FROM banners WHERE section = 1 AND pageid = 2
但如果没有找到结果,我会运行第二个查询:
SELECT * FROM banners WHERE section = 1 AND pageid = 0
我所做的基本上是试图找到分配给该页面的该部分的横幅图像。如果没有找到结果,那么我会在第二个查询中查找任何默认横幅图像。有没有更好的方法可以在一个查询中执行此操作?
编辑
澄清一点。我想检查是否有任何横幅分配给页面,如果没有,则查看是否有任何横幅分配给 0(默认)。我不想同时显示分配给该页面的所有横幅或显示分配给 pageid 0 的所有横幅,并且可能会返回多行而不仅仅是一个。
附加编辑
为了更好地解释这是为了什么。在管理工具中,我允许某人将横幅图像分配给网站上的部分。在管理工具中,他们可以选择他们希望横幅图像显示的部分和页面。他们还可以为该部分设置默认横幅图像。因此,如果默认情况下没有分配给某个部分的横幅图像,它将在整个网站上加载分配给该部分的 0 的横幅图像。因此,无需将默认横幅图像分配给 50 个不同的页面,他们只需执行一次,它将加载该部分的默认横幅图像或图像。只是想找到一种以更优化的方式完成此操作的方法,而不是 2 个查询可以一次完成吗?
【问题讨论】: