我想请求帮助,因为我无法在B
中执行SELECT
声明。
MySQL
应返回350行,只要第一行根据特定条件填充,如果剩余空间,其余部分将填充其他条件。
答案 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;