列中的两个不同的字符串

时间:2019-07-11 09:38:07

标签: mysql sql

我在该列中有两个数字,我想将其划分为两个不同的列,例如,我有一个“数量”列,其中包含类似:

的文本
Quantity change: old=100, new=0
Quantity change: old=2152, new=2139

我想查询一个包含两列的查询,一列显示“旧数量”,另一列显示“新数量”

2 个答案:

答案 0 :(得分:0)

SELECT (substring(Quantity,
CHARINDEX('w=', Quantity)+2,(len(Quantity)-CHARINDEX('w=', Quantity)))) AS OldQuantity,
( substring(Quantity,
CHARINDEX('old=', Quantity)+4,(CHARINDEX(',', Quantity)-(CHARINDEX('old=', Quantity)+4)))) AS NewQuantity
from tablename
;

答案 1 :(得分:0)

您可以使用substring_index()。假设值是数字:

select substring_index(quantity, 'old=', -1) + 0 as old_value,
       substring_index(quantity, 'new=', -1) + 0 as new_value

这使用隐式转换将值转换为数字。仅转换前导数字,因此这会拔出=之后的数字。