我喜欢在MySQL上优先选择一行。我不知道这是否是可能的,但看到下面的例子:MySQL中的优先条件
id name
1 John
2 Doe
3 Mary
4 Jhonny
假设我不知道ID,而是通过一个具体的理由,我需要通过优先选择:3,2,1 ...在这种情况下,MARY将被选中(#3)。但是如果我需要按顺序选择5,2,1,DOE将被选中(#2)。
好的,我可以通过使用IN(5,2,1)。问题是,如果我没有任何结果(如IN(5,6,7)),我至少需要一行(无所谓)。
例如:选择5,6,7 ...找不到...然后,选择第一个找到的(如JOHN)。
有可能吗?
再见!
编辑:我只是觉得这个解决方案的,但我不知道它应该有多快可以,但效果很好。接受一个有更好基准的回应,以免失败。
ORDER BY FIND_IN_SET(`id`, '5,6,7') DESC
优先级顺序可以是类似于“2,4,1,3”并产生Doe的结果吗?或者'Jhonny'是一个可接受的结果? –
如果不符合优先级,可以使用任何行,以先到者为准,就是这样。 –