How to sort below data

Black Tiger / HL / Regular G2 - 10x2000/2000 - 13/15 ()<br>
Black Tiger / HL / Regular G2 - 10x2000/2000 - 16/20 ()<br>
Black Tiger / HL / Regular G2 - 10x2000/2000 - 21/25 ()<br>
Black Tiger / HL / Regular G2 - 10x2000/2000 - 3/6 ()<br>
Black Tiger / HL / Regular G2 - 10x2000/2000 - 8/12 ()<br>
Black Tiger / HL / Regular G2 - 6x2000/2000 - 13/15 (0)<br>
Vannamei / HOSO / Regular - 10x800/1000 - 31/40 (50)<br>
Vannamei / HOSO / Regular - 10x800/1000 - 40/60 (75)<br>
Vannamei / HOSO / Regular - 10x800/1000 - 61/80 (100)<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 8/12 (15)<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 13/15 (18.75)<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 16/20 (25)<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 21/25 (31.25)<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 26/30 (37.5)<br>

Should be sorted like

Black Tiger / HL / Regular G2 - 10x2000/2000 - 3/6 ()<br>
Black Tiger / HL / Regular G2 - 10x2000/2000 - 8/12 ()<br>
Black Tiger / HL / Regular G2 - 10x2000/2000 - 13/15 ()<br>
Black Tiger / HL / Regular G2 - 10x2000/2000 - 16/20 ()<br>
Black Tiger / HL / Regular G2 - 10x2000/2000 - 21/25 ()<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 8/12 (15)<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 13/15 (18.75)<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 16/20 (25)<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 21/25 (31.25)<br>
Vannamei / HOSO / Horeca - 10x800/1000 - 26/30 (37.5)<br>
Vannamei / HOSO / Regular - 10x800/1000 - 31/40 (50)<br>
Vannamei / HOSO / Regular - 10x800/1000 - 40/60 (75)<br>
Vannamei / HOSO / Regular - 10x800/1000 - 61/80 (100)
有帮助吗?

解决方案

You can get results by below query but query will be slow if there is huge amounts of data.

SELECT * FROM mytable ORDER BY LEFT(myfield,5), SUBSTRING_INDEX(SUBSTRING_INDEX(myfield,'-',-1),'/',1);

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top