我有一个简单的表格,其中包含蔬菜的营养数据(例如)。在某些情况下(但不是全部),数据可能会根据蔬菜的种类而有所不同。
在页面级别,如果它存在,我想输出变种本身的数据,但如果不存在,则输出一般的蔬菜数据。
这是我的查询('胡萝卜'值实际上是数字,为了便于理解,我在这里更改了它们);
SELECT *
FROM fp_nutrition
WHERE fpID='carrot variety' AND approval_status='approved'
OR
fpID='carrot' AND approval_status='approved'
ORDER BY nutriID DESC
为清楚起见,我们假设此查询是在胡萝卜品种的页面上运行的。
在目前的形式中,它返回(例如)2行 - 一行用于'胡萝卜'和一个胡萝卜品种#。有没有办法我可以更改这个查询,所以它只返回一行 - 但是单行是最合适的(所以'胡萝卜品种是首选,但'胡萝卜'返回如果不存在的话。
到目前为止,我提出的唯一解决方案是通过fpID DESC和LIMIT 1进行排序,但这依赖于“胡萝卜”和“胡萝卜”的数据。总是先添加(可能,但我不想依赖这种情况)。
答案 0 :(得分:2)
你可以qt59-env.sh
2个查询的结果,但只有当第一个查询不存在时才显示第二个
=>显示'胡萝卜品种'和胡萝卜(仅当胡萝卜品种不存在时)
UNION