簡體   English   中英

具有多條記錄的 MySQL “SELECT LIMIT 1” 是否從頂部選擇第一條記錄?

[英]Does MySQL “SELECT LIMIT 1” with multiple records select first record from the top?

我搜索了又搜索,但找不到這個問題的答案,我可能問錯了。

我正在查詢員工數據庫。

我需要根據職位 id 獲取詳細信息,但是該職位 id 可能有多個記錄,因為該組織有針對同一職位的固定員工和臨時員工。

因此,為了獲得位置 id 的當前占用者,我需要我的查詢從 TOP DOWN 中選擇與位置字符串匹配的第一個記錄。

這會從頂部選擇第一個匹配的記錄嗎?

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

提前致謝。

您需要一個ORDER BY子句來定義表中各個記錄之間的排序。 如果不使用ORDER BY ,則可以假設記錄之間沒有固定順序,並且每次執行查詢時都可以獲得新順序。

從手冊:

帶一個參數,該值指定從結果集的開頭返回的行數

因此,使用LIMIT 1您將獲得結果集中的第一行。 結果集是什么取決於使用的引擎和您擁有的索引。 如果要添加第一行,則需要創建另一列來定義它。

它只是隨機獲取一個* 除非您添加ORDER BY子句,否則無法確定它將是哪一個。

*當然,並不是真的隨機。 這取決於記錄的存儲方式,重復查詢可能每次都返回相同的結果,至少只要您不修改表或其內容。 我的意思是,你不能確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM