我需要您的幫助。僅使用MySQL進行自然排序
我們正在爲客戶開發一個電子商務項目,現在我們需要使用MySQL的自然排序對產品進行排序(我們不能通過使用natsort ,因爲我們使用延遲加載,所以我們必須只)
需要解決類似下面的例子(但是從MySQL)
http://php.net/manual/en/function從MySQL數據進行排序。natsort.php
更多清晰度:這是我想要分類的原始數據。
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 –