我有这样一个表,我们将调用表foo
:如果满足条件,如何在MySQL中选择一行,如果条件不满足,则选择另一行?
+----+------------+----------+----------+
| id | product_id | name | language |
+----+------------+----------+----------+
| 1 | 1 | Potatoes | English |
| 2 | 1 | Patatas | Spanish |
| 3 | 3 | Bananas | English |
+----+------------+----------+----------+
正如你或许可以告诉,行1和2是相同的产品,与第2行是第1行的翻译
我想选择第2行和第3行。原因是通过选择第2行和第3行,我选择了表中的所有产品(没有重复)。我想选择第2行而不是第1行,因为我对西班牙语有“语言偏好” - 我想在可能的情况下选择包含西班牙语翻译的行。如果西班牙文翻译不可用(即产品3),我们只需选择英文版(或product_id
等于id
栏的版本)。
如何在MySQL中处理这个问题?我目前已经得到了这个,它选择了所有的英文行,但我想申请一个条件的WHERE
部分,如上所述。
SELECT * FROM foo WHERE product_id = id
这是现在整理 – e4c5