我有一個MySQL表中的數據,之後順序按字母AZ但「AA」與title
像這樣:MySQL查詢到「Z」
16A Activated Charcoal
16AA Lidocaine Viscous Gel (Xylocaine ®)
16B Adenosine (Adenocard)
16BB Lorazepam (Ativan)
16C Albuterol (Proventil, Ventolin)
16CC Magnesium Sulfate
16D Amidarone Cordarone, Nexterone
16E Aspirin
16F Atropine Sulfate
16G Calcium Chloride
[...]
16Z DuoDote Auto-Injector
我的應用程序使用此SQL查詢來構建數據的列表:
SELECT uid, file, title
FROM library
WHERE section = '$uid' AND enabled >0
ORDER BY title ASC
這是有效的,只不過MySQL(正確)將16AA放在16A之後(如上所列)。我想要的是列出所有16A-16Z,然後是16AA-16ZZ。因此,在這個順序返回數據:
16A Activated Charcoal
16B Adenosine (Adenocard)
16C Albuterol (Proventil, Ventolin)
[...]
16Z DuoDote Auto-Injector
16AA Lidocaine Viscous Gel (Xylocaine ®)
16BB Lorazepam (Ativan)
16CC Magnesium Sulfate
短片添加sort
列到我的表,有一些方法可以讓我寫一個查詢訂購這些A-Z,然後AA-ZZ,等等?
我的想法:如果我算其中的空間在title
發生時,我可以通過這個數字ASC,然後順序排序在第二優先級冠軍ASC。這應該首先按字母順序給我所有的3位數字代碼,然後按字母順序排列所有4位數字代碼,然後按字母順序排列所有5位數字代碼,對嗎?
試'ORDER BY LEN(COL),col' –
不幸title'的'的長度是任意的,因爲它是代碼(如'16A'),隨後由實際標題(其可以具有任何長度) 。但是偉大的想法! –