簡體   English   中英

從mysql查詢中獲取最高編號

[英]Getting the highest number from a mysql query

我的問題是我需要創建一個訂單,以便可以在此Web應用程序中上下移動項目。 但是,我無法通過具有增量值的索引來索引order(ord列)值,因為同一表中有幾家公司使用此列。

我的表結構是這樣的: 在此處輸入圖片說明

現在,我在想,最簡單的方法是做一個MAX並獲取最大的數字,並以某種方式將其用作索引,這樣一來,當您添加一個新的公司名稱時,對於特定的公司列表,您永遠都不會獲得相同的數字兩次公司的新條目。

SELECT MAX(ord) FROM phonebook WHERE `id_company` = "51";

這是明智的選擇嗎? 或者,也許為每個客戶創建一個新的數據庫,然后創建並建立索引並將其用作訂購條目的方式?

我建議您在分配ord值時目標並非完全完善。 您可以按以下步驟解決:

  1. 不要讓ord獨一無二。 (不是)。
  2. 依靠phonebook_name的順序來獲得良好的名稱順序。 正是出於這個目的,MySQL具有這些出色的不區分大小寫的排序規則。
  3. 我想您正在嘗試使公司的某些條目排在第一位,而其他條目排在最后。 ord列設置為每個人50 ,然后給您輸入您想要的第一個小數字,然后輸入您想要的最后一個大數字。

當顯示特定公司的數據時,請按照以下步驟操作...

SELECT whatever, whatever
  FROM phonebook
 WHERE id_company = 11
 ORDER BY ord, phonebook_name, phonebook_number, id_phonebook

ORDER BY子句將執行您想要的操作,並且如果存在重復項,它將保持穩定。 然后,您可以在用戶界面中將帶有上述查詢的條目上移。

UPDATE phonebook SET ord=ord-1 WHERE id_phonebook = :recordnumber

暫無
暫無

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

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