我想知道如何在一个查询中为MySQL中的某些选择设置优先级。让我澄清一下:

例如,我想在“我的数据库”中搜索apple,如果返回的记录少于4条,则搜索orange,如果apple和orange的总和小于4,则搜索Strawberry。

像下面

select * from Mytable  where Myculomn like "%apple%"


如果这次返回的记录少于4条,则搜索橙色并按照我的说明进行操作。最好按高优先级对其进行排序:首先将来自苹果的搜索结果放到苹果中,然后再将其排序并...

我知道mysql中的uninon,但是在这种情况下它的功能对我来说还是很模糊的。

提前谢谢你的帮助。

最佳答案

您可以使用条件顺序来获得4行作为您的条件

select *
from Mytable
where Myculomn like "%apple%"
  OR Myculomn like "%orange%"
  OR Myculomn like "%strawberry%"
ORDER BY CASE WHEN Myculomn like "%apple%" THEN 1
    WHEN Myculomn like "%orange%" THEN 2
    WHEN Myculomn like "%strawberry%" THEN 3
    ELSE 4 END ASC
    LIMIT 4

10-01 11:26