Mysql查询以分隔空格分隔的字符串转换为2列

时间:2016-07-04 06:14:24

标签: mysql

空格分隔样本字符串:24 4 36 2 63 5 56 7

MySQL Query Expected output:

    Col A  Col B
    24      4 
    36      2
    63      5
    56      7

1 个答案:

答案 0 :(得分:1)

这是一个满足您要求的查询。请注意,它实际上并没有从COLUMNS表中选择任何行,这是必要的,因为MySQL没有可用的行生成器,任何表都可以到这里,但它必须有比下面的查询更多的行应返回,否则它将像LIMIT命令一样。

SET @VInput := '24 4 36 2 63 5 56 7';
SET @VRow := 0;

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(@VInput, ' ', (@VRow := @VRow + 1) * 2 - 1), ' ', -1), SUBSTRING_INDEX(SUBSTRING_INDEX(@VInput, ' ', (@VRow) * 2), ' ', -1) FROM INFORMATION_SCHEMA.`COLUMNS` WHERE @VRow * 2 < CHAR_LENGTH(@VInput) - CHAR_LENGTH(REPLACE(@VInput, ' ', ''));

如果您有任何问题,请告诉我,

此致

詹姆斯