我被困住了,不知道如何继续前进。如何相应地订购我的结果?
10 x 2 ml
10 x 10 ml
4 x 20 ml
10 x 2 ml
应首先出现,因为2 ml
小于10 ml
然后按乘法符号前面的数字排序。
答案 0 :(得分:1)
这就是我解决自己问题的方法:
ORDER BY SUBSTR(size, INSTR(size, 'x') + 2) + 0, size + 0
答案 1 :(得分:0)
你可以试试这个,但它真的丑陋,特别是如果表很大并且你需要性能:
ORDER BY TRIM(REPLACE(REPLACE(field_name,CONCAT(SUBSTRING_INDEX(field_name,'x',1),'x'),''),'ml',''))
它取代了SUBSTRING_INDEX('ABCx123ml','x',1); //带有空格的ABC和ml,调整它,只留下订单所需的值...