我的表中有一列是代碼。他們是在 AAA-XXXX-YYY
的格式,其中Rails 3多個default_scope字母數字
AAA
是按字母順序排列XXX
是數字YYY
是數字
我想在AAA
使用字母排序,然後數字排序上XXXX
,然後在YYY
上對我的default_scope進行數字排序,所以當我爲它們編制索引時,它們就像那樣排序。
如果我沒有在列的字母數字排序我將結束與以下:
AAA-1000-1
AAA-1000-111
AAA-1000-2
BB-1000-12
BBB-1000-1
BCA-1000-1
C-1000-12
,但111是大於2使用數字排序。
編輯:AAA的長度不固定。所以它可能是「AA」或「BBBB」或「CCC」。有人提到使用SQL SUBSTRING,但並不總是設置位置。
編輯2:我可能應該提及這種排序需要在default_scope上完成,所以當我訪問Object.all時,它們默認按這種方式排序。
感謝您的幫助!
http://stackoverflow.com/questions/5480703/how-to-sort-an-alphanumeric-array-in-ruby – Unixmonkey
http://stackoverflow.com/questions/4785424/how-to-基於MySQL中的子字符串進行表格排序的特定字符串部分排序 – mccannf