MySQL执行字符串作为数学运算

时间:2013-05-03 09:43:37

标签: mysql math

在专栏中,我有类似的内容:

量:

12
2x25
192

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

我的出发点:

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

TIA frgtv10

2 个答案:

答案 0 :(得分: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

DEMO HERE

步骤和解释:

  • 找到x值

  • 的字段
  • 从左到右的sbstring并将其相乘。

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

  • 订购asc

答案 1 :(得分:1)

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