在一个专栏中,我有这样的事情:
数量:
12
2x25
192
在此示例中如何乘以 2x25 以正确排序 ASC。
我的出发点:
SELECT * FROM table
ORDER BY REPLACE(Amount,'x','*') ASC
TIA frgtv10
尝试这个
SELECT
CAST(if(Amount LIKE '%x%', SUBSTRING_INDEX(Amount, 'x', 1) *
SUBSTRING_INDEX(Amount, 'x', -1) , Amount) as unsigned ) as amount
FROM table1
ORDER BY Amount ASC
步骤和解释:
定位具有 x 值的字段
sbstring 从左到右并相乘。
然后将乘法转换为无符号。
订购它
只要这是唯一的公式(乘以 2 个数字),您应该能够使用 INSTR、SUBSTRING 和 CONVERT 对其进行硬编码。