1

在一个专栏中,我有这样的事情:

数量:

12
2x25
192

在此示例中如何乘以 2x25 以正确排序 ASC。

我的出发点:

SELECT * FROM table
ORDER BY REPLACE(Amount,'x','*') ASC

TIA frgtv10

4

2 回答 2

4

尝试这个

  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 从左到右并相乘。

  • 然后将乘法转换为无符号。

  • 订购它

于 2013-05-03T10:11:23.743 回答
1

只要这是唯一的公式(乘以 2 个数字),您应该能够使用 INSTR、SUBSTRING 和 CONVERT 对其进行硬编码。

于 2013-05-03T09:59:42.943 回答