在一个专栏里我有这样的东西:
数量:

12
2x25
192

在这个例子中,如何乘法来正确排序呢。
我的出发点:
SELECT * FROM table
ORDER BY REPLACE(Amount,'x','*') ASC

短暂性脑缺血发作
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

DEMO HERE
步骤和说明:
用x值定位字段
从左到右sbstring并将其相乘。
然后将乘法转换为无符号。
订购asc

关于mysql - MySQL执行字符串作为数学运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16355972/

10-11 03:32
查看更多