是否可以使用MySQL设置首选项' OR'查询?

时间:2018-02-07 14:12:20

标签: mysql

我有一个简单的表格,其中包含蔬菜的营养数据(例如)。在某些情况下(但不是全部),数据可能会根据蔬菜的种类而有所不同。

在页面级别,如果它存在,我想输出变种本身的数据,但如果不存在,则输出一般的蔬菜数据。

这是我的查询('胡萝卜'值实际上是数字,为了便于理解,我在这里更改了它们);

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进行排序,但这依赖于“胡萝卜”和“胡萝卜”的数据。总是先添加(可能,但我不想依赖这种情况)。

1 个答案:

答案 0 :(得分:2)

你可以qt59-env.sh 2个查询的结果,但只有当第一个查询不存在时才显示第二个

=>显示'胡萝卜品种'和胡萝卜(仅当胡萝卜品种不存在时)

UNION