2011-11-16 27 views
10

Tôi có một truy vấn mysqlThêm trật tự bằng với bù đắp và hạn chế trong truy vấn mysql

SELECT * FROM lead LIMIT 5 OFFSET 0 

để chọn dữ liệu từ khách hàng tiềm bảng và giới hạn kết quả 5 với offset của 0. Tôi muốn đặt hàng các kết quả theo id của nó theo desc, do đó kết quả sẽ được điền là dữ liệu được thêm lần cuối trước tiên.

tôi đã cố gắng

SELECT * FROM lead LIMIT 5 OFFSET 0 order by id desc 

nhưng nó không làm việc ... Xin vui lòng xác tôi, nơi tôi sai và phải làm gì.

Xin cảm ơn trước.

Trả lời

29

Bạn phải

select * from lead order by id desc LIMIT 5 OFFSET 0 

Tài liệu hướng dẫn (http://dev.mysql.com/doc/refman/5.0/en/select.html) mô tả LIMIT mà chỉ được phép xuất hiện sau ORDER BY.

+0

Cảm ơn Dennis ..! It :) :) –

+0

@Bala: Xin đừng quên để đánh dấu câu trả lời của tôi là câu trả lời: D – Dennis

+0

4 phút để đi :) –

3

Điều khoản ORDER BY đến trước mệnh đề LIMIT. Điều này có ý nghĩa bởi vì trước tiên bạn muốn tập bản ghi được đặt hàng và sau đó áp dụng giới hạn.

SELECT * FROM lead ORDER BY id DESC LIMIT 0, 5 

Bạn có thể sử dụng cú pháp LIMIT offset, row_ count hoặc LIMIT row_count OFFSET offset.

Kiểm tra: http://dev.mysql.com/doc/refman/5.0/en/select.html

+0

Tôi đã thử nó trong phpMyAdmin trước khi thêm nó vào mã. Nó đang ném một lỗi với truy vấn trên.! : ( –

+0

@Bala: Bạn có thể cho chúng tôi biết cấu trúc bảng của bạn không? – Dennis

+0

Xin lỗi, lỗi của tôi, dấu ngoặc với LIMIT tôi đã sử dụng không hợp lệ: -/ – CodeZombie

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