我有一个表test,其中有一列state_numbers
id state_numbers -- ------------ 1 scr:1.0043;smb:0;rsm:0 2 scr:1.12;smb:0;rsm:0.3 3 scr:0.083;smb:0.65;rsm:0 4 scr:1.021;smb:0;rsm:0.2 5 scr:0.77;smb:0;rsm:0
我创建了一个名为状态的表,看起来像
id scr smb rsm total ------ ------ ------ ------ ------ (null) (null) (null) (null) (null)
我需要一个查询来读取state_numbers中的值,根据关键字拆分表达式并将值放入状态表的相应列中。
我期待着:
id scr smb rsm total ------ ------ ------ ------ ------ 1 1.0043 0 0 (null) 2 1.12 0 0.3 (null) 3 0.083 0.65 0 (null)
然后我将能够在每列中添加数据并在总计列中进行更新。
最终输出:
id scr smb rsm total ------ ------ ------ ------ ------ 1 1.0043 0 0 1.0043 2 1.12 0 0.3 1.42 3 0.083 0.65 0 0.733
我该如何实现这一目标?帮助我拆分特定单元格并将数据插入到不同的字段中。
先谢谢了!!!
P.S:请为这个问题建议一个合适的标题
最佳答案
试试这个:
SELECT id, scr, smb, rsm,
(CAST(scr AS DECIMAL(18, 5)) + CAST(smb AS DECIMAL(18, 5)) + CAST(rsm AS DECIMAL(18, 5))) total
FROM (SELECT id, REPLACE(SUBSTRING_INDEX(state_numbers, ';', 1), 'scr:', '') scr,
REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(state_numbers, ';', -2), ';', 1), 'smb:', '') smb,
REPLACE(SUBSTRING_INDEX(state_numbers, ';', -1), 'rsm:', '') rsm
FROM test
) AS A
关于MySql-拆分单元格并插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20759699/