拆分字符串并在MySQL中执行计算

时间:2015-04-19 20:56:41

标签: mysql string

我们说我已经将数据作为字符串提供:

+----------+
|Size      |
+----------+
|15X10     |
|5X4       |
|3         |
|2X6X5     |
+----------+

我想将此列写为整数,如下所示:

 +----------+
 |Size      |
 +----------+
 |150       |
 |20        |
 |3         |
 |60        |
 +----------+

其中一些是三个数字的乘法,其中一些只是一个数字。我可以拆分字符串,但不能让MySQL计算数字。谢谢。

1 个答案:

答案 0 :(得分:1)

不是最干净的查询,但您可以使用SUBSTRING_INDEX

SELECT
  Size,
  CASE
    WHEN Size LIKE '%X%X%' THEN
       SUBSTRING_INDEX(Size, 'X', 1)*
       SUBSTRING_INDEX(SUBSTRING_INDEX(Size, 'X', 2), 'X', -1)*
       SUBSTRING_INDEX(SUBSTRING_INDEX(Size, 'X', 3), 'X', -1)
    WHEN Size LIKE '%X%' THEN
       SUBSTRING_INDEX(Size, 'X', 1)*
       SUBSTRING_INDEX(SUBSTRING_INDEX(Size, 'X', 2), 'X', -1)
    ELSE Size
  END AS multipied_size
FROM
  sizes

此查询仅在您最多有两个X时才有效。请查看小提琴here