MySQL - SELECT直到固定行数

时间:2017-04-19 14:22:39

标签: mysql sql select

我想请求帮助,因为我无法在B中执行SELECT声明。

MySQL应返回350行,只要第一行根据特定条件填充,如果剩余空间,其余部分将填充其他条件。

3 个答案:

答案 0 :(得分:1)

在ORDER BY子句和LIMIT子句中使用表达式。

例如:

SELECT ...
  FROM mytable t
 ORDER
    BY IF(( t.foo >= 117 AND t.bar IN (2,3,5) ),0,1)
     , IF(( t.foo >= 0                        ),0,1)
     , IF(( t.bar = 42                        ),0,1)
     , ...
 LIMIT 350

将首先订购满足条件t.foo >= 117 AND t.bar IN (2,3,5)的行。 (因为ORDER BY将在表达式返回时运行。将评估该条件,IF函数将返回0或1. ORDER BY子句中的后续表达式将以相同的方式计算。

LIMIT子句将限制返回的行数,但不保证查询不会返回更少的行,例如如果mytable包含少于350行。

答案 1 :(得分:0)

你的意思是:

SELECT column(s) FROM TABLE WHERE column = 42 LIMIT 350

或者你想要第一行'列= 42'然后阅读350行?

答案 2 :(得分:0)

您使用LIMIT限制返回的行数。您可以使用ORDER BY说出您喜欢的行。

假设您正在寻找col =' best'的记录,但如果没有足够的(即350),您还需要col =' okay&#39的行;:

select *
from mytable
where col in ('best', 'okay')
order by case when col = 'best' then 1 else 2 end
limit 350;