2012-12-18 45 views

Trả lời

10

Nếu bạn biết có 35 bản ghi, bạn muốn limit 1 offset 34.

Nếu bạn muốn lấy phần tử cuối cùng thứ 2 từ bất kỳ nào, bạn có thể đảo ngược thứ tự của bộ và chọn một phần tử, bù đắp một phần tử. Bạn có thể tự thực hiện điều này bằng cách trước tiên chọn hai phần tử đầu tiên của tập hợp có thứ tự nghịch đảo, sau đó đảo ngược bộ và chọn phần tử đầu tiên:

select * from 
    (select * from my_table order by id desc limit 2) table_alias 
order by id limit 1 
15

đơn giản nhất phương pháp

SELECT * FROM tab ORDER BY col DESC LIMIT 1,1 

này sẽ chọn một kỷ lục bắt đầu với LIMIT 2nd 1,1 có nghĩa là bỏ qua đầu tiên và chọn tiếp theo

Trình tự do sẽ phải được thực hiện để cuối cùng là đầu tiên Các col được đề cập nhiều nhất có thể là id

Nếu bạn biết số lượng bản ghi bạn muốn, tuy nhiên tại sao bạn không thể chọn vị trí id = 34?

+0

Câu trả lời tuyệt vời! +1 hoạt động với bất kỳ số hàng –

+0

làm cách nào tôi có thể sử dụng truy vấn này trong yii2? –

Các vấn đề liên quan