2013-07-07 38 views
8

Tôi đã tìm kiếm và tìm kiếm và không thể tìm thấy câu trả lời cho câu hỏi này, tôi có thể hỏi nó theo cách sai.MySQL có "SELECT LIMIT 1" với nhiều bản ghi chọn bản ghi đầu tiên từ trên cùng không?

Tôi đang truy vấn cơ sở dữ liệu của nhân viên.

Tôi cần lấy chi tiết dựa trên id vị trí, tuy nhiên có thể có nhiều bản ghi cho id vị trí đó vì tổ chức này có nhân viên cố định và nhân viên tạm thời hành động chống lại cùng một vị trí.

Vì vậy, để có được người cư ngụ CURRENT của id vị trí, tôi cần truy vấn của tôi để chọn bản ghi FIRST khớp với chuỗi vị trí, từ TOP DOWN.

điều này có chọn bản ghi phù hợp đầu tiên từ trên cùng không?

SELECT * WHERE `position_id`="00000000" LIMIT 1; 

Xin cảm ơn trước.

+0

Nó chọn bản ghi đầu tiên. Nếu bạn chưa chỉ định một đơn đặt hàng trong truy vấn ... :: shrug :: –

Trả lời

8

Bạn cần một điều khoản ORDER BY để xác định thứ tự giữa các cá nhân ghi lại bảng của bạn. Nếu bạn không sử dụng ORDER BY, bạn có thể giả định không có thứ tự cố định giữa các bản ghi và bạn có thể nhận được một đơn đặt hàng mới mỗi lần bạn thực hiện truy vấn.

+0

Cảm ơn, tôi sẽ tấn công điều này bằng "ORDER BY id" Tôi nghĩ khi sắp xếp các bản ghi trong Excel trước. – hammus

+1

Chỉ cần nhớ rằng việc thực hiện một ORDER BY id LIMIT 1 sẽ sắp xếp toàn bộ tập kết quả trước, sau đó cung cấp cho bạn hàng đầu tiên. – flogvit

2

Nó chỉ nhận được một ngẫu nhiên *. Không có cách nào để biết nó sẽ là cái gì, trừ khi bạn thêm một mệnh đề ORDER BY.

* Không thực sự ngẫu nhiên, tất nhiên. Nó phụ thuộc vào cách các hồ sơ được lưu trữ và các truy vấn lặp đi lặp lại có thể sẽ trả về cùng một kết quả mỗi lần, ít nhất là miễn là bạn không sửa đổi bảng hoặc nội dung của nó. Tôi thực sự có nghĩa là, bạn không thể chắc chắn.

3

Từ hướng dẫn:

Với một đối số, giá trị xác định số hàng trở lại từ đầu của kết quả thiết

Vì vậy, với LIMIT 1 bạn nhận được hàng đầu tiên từ tập hợp kết quả. Tập kết quả phụ thuộc vào công cụ được sử dụng và chỉ mục nào bạn có. Nếu bạn muốn thêm hàng đầu tiên, bạn cần phải tạo một cột khác để xác định điều đó.

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