【发布时间】:2021-08-19 19:55:02
【问题描述】:
使用 MariaDB。
假设您有一张表,其中一列是 color,并且是主键,因此它是唯一的。
我想要一个 select 语句根据颜色获取一行,但我想按首选顺序搜索三种可能的颜色匹配。
普通的WHERE color='red' OR color='blue' OR color='green' 不起作用,因为它会返回多行。我不能使用ORDER BY 和LIMIT,因为这三个搜索值不是按字母顺序排列的。
我想搜索color='red',如果有红色,就给我那一行。如果没有红色,请给我color='blue' 的行。如果没有红色或蓝色,请给我color='green' 的行。但要明确一点,在搜索第一种颜色红色时,即使有蓝色和绿色也只会返回红色,因为它是首选匹配。但是如果没有红色,则下一个颜色为蓝色。
我查看了if()、IF...THEN 和CASE,但不知道该怎么做。有什么办法吗?
【问题讨论】: