鉴于我有一个排序关系(可能由
完成) SELECT id
FROM model
WHERE type = 'a'
ORDER BY name`
...),现在我想快速获取特定记录的索引例如记录ID#15003 。
我应该如何在MySql中执行此操作[我是Rails开发人员]?
答案 0 :(得分:2)
假设您使用索引表示行号。也就是说,如果结果返回'1,7,9,......'那么“9的索引”是3,它是第3行。
你想要的是各种所谓的“窗口函数”或“统计函数”,如row_number()。
MySQL没有它们。遗憾。
但是,虽然我不是RAILS开发人员,但我必须假设您可以在数组中获得结果并搜索数组并返回索引号?
编辑:根据您对Brad答案的评论,如果您为了分页结果而这样做,那么请查看LIMIT和OFFSET。 http://dev.mysql.com/doc/refman/5.0/en/select.html
答案 1 :(得分:0)
您是否在寻找以下内容:http://www.xaprb.com/blog/2006/12/02/how-to-number-rows-in-mysql/
我相信这将要求您选择所有结果,直至达到预期效果。因此,如果您的记录位于索引15003,则必须选择记录1-15003。显然这不是有效的或可扩展的...也许有更好的方法来解决这个问题?为什么你还需要索引?为什么不在原始SQL上放置一个限制性更强的WHERE条件?