MySQL在不同条件下选择N行

时间:2014-11-10 03:20:12

标签: mysql

假设有一个表格为

| id | value |
|  1 |   xyz |
|  4 |   abc |
|  5 |  test |

我想选择Nid小于X的行,但如果此结果集小于N行,我希望添加以下行确保选择N行(除非此表中没有足够的行)。

例如,我希望获得N=2id不大于X=4的行,因此我获得1st行和2nd行。但如果我想为N=3获取X=4行,我想要所有这三行。

我可以在一个声明中这样做并尝试提高效率吗?

1 个答案:

答案 0 :(得分:1)

您希望确定行的优先级。您可以使用order bylimit执行此操作。这是一个例子:

select t.*
from table t
order by (x <= @X) desc, x
limit 2;