按字母顺序订购时,我留下了这个:
S1 Episode 1
S1 Episode 11
S1 Episode 12
S1 Episode 2
S1 Episode 3
S2 Episode 1
S2 Episode 11
示例代码:
DB::table('test')->orderby('title','ASC')->get();
等等我需要这些才能正确订购.有解决方案吗
谢谢.
最佳答案
您正面临着以字母数字或计算机科学术语对自然分类进行分类的问题.
有many ways to achieve a natural sort with straight MySQL但您也可以将Laravel助手的结果转换为数组格式并实现PHP的natsort
function instead.
从我上面找到的方法中,我得出了可能通过示例代码解决问题的最佳方法:
DB::table('test')->orderBy('LENGTH(title)','ASC')
->orderBy('title','ASC')
->get();
但是我不确定帮助者是否会抱怨在orderBy函数中接收MysqL函数而不是直列名.我只是从我和你的例子一起使用的参考文献中抄写 – 我无法保证其功效.