【问题标题】:How to split a resulting column in multiple columns如何将结果列拆分为多列
【发布时间】:2012-12-06 18:58:51
【问题描述】:

我有一张这样的桌子:

id  ip
--  -----------
1   192.168.2.1

并且需要得到如下结果:

id  ip           A    B    C    D
--  -----------  ---  ---  ---  ---
1   192.168.2.1  192  168  2    1

可行吗?

【问题讨论】:

标签: mysql


【解决方案1】:
SELECT `id`, `ip`,
    SUBSTRING_INDEX( `ip` , '.', 1 ) AS a,
    SUBSTRING_INDEX(SUBSTRING_INDEX( `ip` , '.', 2 ),'.',-1) AS b,
    SUBSTRING_INDEX(SUBSTRING_INDEX( `ip` , '.', -2 ),'.',1) AS c,
    SUBSTRING_INDEX( `ip` , '.', -1 ) AS d
FROM unicorns

Source

示例

SET @ip = '192.168.1.1';

SELECT @ip,
    SUBSTRING_INDEX( @ip , '.', 1 ) AS a,
    SUBSTRING_INDEX(SUBSTRING_INDEX( @ip , '.', 2 ),'.',-1) AS b,
    SUBSTRING_INDEX(SUBSTRING_INDEX( @ip , '.', -2 ),'.',1) AS c,
    SUBSTRING_INDEX( @ip , '.', -1 ) AS d

结果

| @IP |一个 |乙| C | D | ---------------------------------- | 192.168.1.1 | 192 | 168 | 1 | 1 |

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    相关资源
    最近更新 更多