如何按字母顺序和数字对标题进行排序?

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")

排序正常。