私はこのスキーマ次の文書番号を使用してテーブルとSQLiteのデータベースを持っている:DBIx :: Class:列の複数の部分文字列をどのようにソートできますか?
16-145-45
16-127-30
16-141-42
16-122-14
15-090-04
15-089-15
15-089-05
私はこのように、番号の最初と最後の部分にResultSet
を並べ替えしたいと思います。まず、最後の2桁でソートされた上位2桁の接頭辞(16)で始まり、次のブロックと同じようにすべての文書が続きます。
16-145-45
16-141-42
16-127-30
16-122-14
15-089-15
15-089-05
15-090-04
カスタムorder_by
句のいくつかの並べ替えとDBIx::Class
でこれを行う方法はありますか、どのようなアプローチでしょうか?
数の中間部分もソートするために考えられているので、私は、動作しない、次のことを試してみました:
my @rs = $self->search(undef,
{
order_by => { -desc => 'me.number' }
}
);
@ChankeyなぜSQLタグを削除しましたか?それは関係ないですか? – dequid
私はあなたの質問がSQL固有であるとは思わない。これは 'DBIx :: Class'とソートの詳細です。 –
あなたはどのデータベースエンジンを使用しているのかを言う必要があります。 PostgreSQLを使用していない限り、 'split_part'関数は利用できません。誰かがどちらかの方法で言っていない場合、通常の仮定はあなたがMySQLを使用しているということです。あなたの質問とタグを更新してください。 – Borodin