私はあなたの助けが必要です。MySQLを使用したNaturalソート
クライアント用の電子商取引プロジェクトを1つ開発していますが、今度はMySQLの自然なソートを使用してソートする必要があります(PHPで配列を並べ替えることはできません)私たちが遅延ロードを使用しているので、我々は唯一のMySQLからデータをソートする必要がある)
例以下のような(しかし、MySQLのから)ソリューション何か
http://php.net/manual/en/functionが必要です。natsort.php
もっと分かりやすくするために、これは並べ替えたいRawデータです。
INSERT INTO `sample` (`id`, `data`) VALUES (1, 'MLB-1.0-6.0-2.5'), (2, 'MLB-1.0-6.0-3'), (3, 'MLB-1.0-7.0-2'), (4, 'MLB-1.0-7.0-2.5'), (5, 'MLB-1.0-7.0-3'), (6, 'MLB-1.0-9.0-2.5'), (7, 'MLB-1.0-10.0-2'), (8, 'MLB-1.0-10.0-2.5'), (9, 'MLB-1.0-8.0-3'), (10, 'MLB-1.0-9.0-2.5'), (11, 'MLB-1.0-10.0-2'), (12, 'MLB-1.0-10.0-2.5'), (13, 'MLB-1.0-10.0-3'), (14, 'MLB-1.0-12.0-2.5'), (15, 'MLB-1.0-12.0-3'), (16, 'MLB-1.2-10.0-2'), (17, 'MLB-1.2-10.0-3'), (18, 'MLB-1.2-10.0-4'), (19, 'MLB-1.2-10.0-5'), (20, 'MLB-1.2-11.2-2'), (21, 'MLB-1.2-11.2-3'), (22, 'MLB-1.2-11.2-4'), (23, 'MLB-1.2-12.0-2'), (24, 'MLB-1.2-12.0-2.5'), (25, 'MLB-1.2-12.0-3'), (26, 'MLB-1.2-12.0-4'), (27, 'MLB-1.2-12.0-5'), (28, 'MLB-1.2-12.0-6'), (29, 'MLB-1.2-12.0-8'), (30, 'MLB-1.2-12.7-3'), (31, 'MLB-1.2-14.0-2.5'), (32, 'MLB-1.2-14.0-3'), (33, 'MLB-1.2-4.0-2.5'), (34, 'MLB-1.2-4.0-3'), (35, 'MLB-1.2-5.0-2'), (36, 'MLB-1.2-5.0-2.5'), (37, 'MLB-1.2-5.0-3'), (38, 'MLB-1.2-6.0-2'), (39, 'MLB-1.2-6.0-2.5'), (40, 'MLB-1.2-14.0-4'), (41, 'MLB-1.2-14.0-5'), (42, 'MLB-1.2-16.0-3'), (43, 'MLB-1.2-16.0-4'), (44, 'MLB-1.2-16.0-5'), (45, 'MLB-1.2-19.0-3'), (46, 'MLB-1.2-19.0-4'), (47, 'MLB-1.2-22.0-3'), (48, 'MLB-1.2-22.0-4'), (49, 'MLB-1.2-6.0-3'), (50, 'MLB-1.2-6.0-4'), (51, 'MLB-1.2-6.0-5'), (52, 'MLB-1.2-6.0-6'), (53, 'MLB-1.2-7.0-2'), (54, 'MLB-1.2-7.0-2.5'), (55, 'MLB-1.2-7.0-3'), (56, 'MLB-1.2-7.0-4'), (57, 'MLB-1.2-8.0-2'), (58, 'MLB-1.2-8.0-2.5'), (59, 'MLB-1.2-8.0-2/2.5B'), (60, 'MLB-1.2-8.0-3'), (61, 'MLB-1.2-8.0-4'), (62, 'MLB-1.2-8.0-5'), (63, 'MLB-1.2-8.0-6'), (64, 'MLB-1.2-8.0-8'), (65, 'MLB-1.2-9.0-2'), (66, 'MLB-1.2-9.0-2.5'), (67, 'MLB-1.2-9.0-3'), (68, 'MLB-1.2-9.0-4');
これは、ソートした後、私の予想結果である:ソリューション以下
MLB-1.0-6.0-2.5 MLB-1.0-6.0-3 MLB-1.0-7.0-2 MLB-1.0-7.0-2.5 MLB-1.0-7.0-3 MLB-1.0-8.0-2 MLB-1.0-8.0-2.5 MLB-1.0-8.0-3 MLB-1.0-9.0-2.5 MLB-1.0-10.0-2 MLB-1.0-10.0-2.5 MLB-1.0-10.0-3 MLB-1.0-12.0-2.5 MLB-1.0-12.0-3 MLB-1.2-4.0-2.5 MLB-1.2-4.0-3 MLB-1.2-5.0-2 MLB-1.2-5.0-2.5 MLB-1.2-5.0-3 MLB-1.2-6.0-2 MLB-1.2-6.0-2.5 MLB-1.2-6.0-3 MLB-1.2-6.0-4 MLB-1.2-6.0-5 MLB-1.2-6.0-6 MLB-1.2-7.0-2 MLB-1.2-7.0-2.5 MLB-1.2-7.0-3 MLB-1.2-7.0-4 MLB-1.2-8.0-2 MLB-1.2-8.0-2.5 MLB-1.2-8.0-2/2.5B MLB-1.2-8.0-3 MLB-1.2-8.0-4 MLB-1.2-8.0-5 MLB-1.2-8.0-6 MLB-1.2-8.0-8 MLB-1.2-9.0-2 MLB-1.2-9.0-2.5 MLB-1.2-9.0-3 MLB-1.2-9.0-4 MLB-1.2-10.0-2 MLB-1.2-10.0-2.5 MLB-1.2-10.0-3 MLB-1.2-10.0-4 MLB-1.2-10.0-5 MLB-1.2-11.2-2 MLB-1.2-11.2-3 MLB-1.2-11.2-4 MLB-1.2-12.0-2 MLB-1.2-12.0-2.5 MLB-1.2-12.0-3 MLB-1.2-12.0-4 MLB-1.2-12.0-5 MLB-1.2-12.0-6 MLB-1.2-12.0-8 MLB-1.2-12.7-3 MLB-1.2-14.0-2.5 MLB-1.2-14.0-3 MLB-1.2-14.0-4 MLB-1.2-14.0-5 MLB-1.2-16.0-3 MLB-1.2-16.0-4 MLB-1.2-16.0-5 MLB-1.2-19.0-3 MLB-1.2-19.0-4 MLB-1.2-22.0-3 MLB-1.2-22.0-4
をすでに試してみました: http://skybluesofa.com/blog/how-implement-natural-sorting-mysql/ http://www.copterlabs.com/natural-sorting-in-mysql/
は親切に、この使用してMySQLのためのソリューションを提案します。
良い人々にDBスキーマと期待される結果を提供します。 –
私たちはこの例のような解決策を必要としますが、MySQLは必要です。 http://php.net/manual/en/function。natsort.php –