假设我有一个表,我按照symfony的字母顺序排序。每个项目都有一个相当随机的id,我想检索特定id之后的所有项目。例如:
Name ID
------------
Apple 5
Banana 9
Coconut 3
Date 1
Eggplant 8
假设我想检索Date
和Eggplant
。我事先知道ID 3,我想要它之后的一切。
我应该如何构造语句来实现这一点?
我不在乎答案是否使用Propel, MySQL, SQL或其他。只要有可能。
SELECT *
FROM tbl1
WHERE name > (
SELECT name
FROM tbl1
WHERE id = 3
)
ORDER BY name
(至少运行与Postgres和Just Aguy's SQL Fiddle)
下面是一个SQLFiddle,它显示了这种工作方式。查询很简单,只需在第一个字母上做一些匹配。我不喜欢硬编码3的想法。是否存在一个进程来设置id的值?
select name from tbl1
where (Left(name,1)) > (select Left(name,1)
from tbl1 where id = 3)
order by name asc