如何按字母顺序和数字对标题进行排序?
How to sort titles alphabetically and number?
我有一个 Post 模型,它有很多标题。但也有一个被标记的主标题。标题包含文本和数字。
我尝试按如下方式对帖子列表进行排序:
joins(:titles).where(main: true).order('titles.value ASC')
结果:
abc 1
abc 12
abc 2
bcd 1
bcd 15
bcd 2
仅按文本排序。请告诉我如何按文本(按字母顺序)以及按数字排序?
我尝试了以下代码:
joins(:titles).where(main: true).order("left(lower(titles.value), 1), substring(titles.value, '\d+')::int NULLS FIRST, titles.value")
排序正常。
我有一个 Post 模型,它有很多标题。但也有一个被标记的主标题。标题包含文本和数字。
我尝试按如下方式对帖子列表进行排序:
joins(:titles).where(main: true).order('titles.value ASC')
结果:
abc 1
abc 12
abc 2
bcd 1
bcd 15
bcd 2
仅按文本排序。请告诉我如何按文本(按字母顺序)以及按数字排序?
我尝试了以下代码:
joins(:titles).where(main: true).order("left(lower(titles.value), 1), substring(titles.value, '\d+')::int NULLS FIRST, titles.value")
排序正常。