0
假设我有一个产品型号为id
和sort_number
。如何通过命令获得下一个记录“弯曲”?
id | sort_number (random)
1 | 325
2 | 161
3 | 58
...
147 | 500 # the biggest sort_number number is equal to the Product.count result
...
500 | 5
我想next(n = 20)
和previous(n = 20)
方法的产品实例。 IE如果我:
product = Product.find(43)
product.sort_number # => 490
product.next(20) # should return products with sort_number equal to (491..500) + (1..10)
我该如何实现此功能?如果下一个没有更多记录,我怎样才能得到sort_number从1开始的下一条记录?
'Product.where'sort_number>? AND sort_number <?',product.sort_number,product.sort_number + 20' – mudasobwa
如果'sort_number'等于100,会怎么样?我需要用'101-120'获得记录sort_number – asiniy
你会得到它们。对于'(490..500)'和'(1..10)',你需要另一个基于返回计数的查询。我不知道1查询方法来实现(实际上,我是,但SQL查询将是不可读的。) – mudasobwa