I have a table like:
id ip
-- -----------
1 192.168.2.1
And need to get a result like:
id ip A B C D
--
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
Example
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
Result
| @IP | A | B | C | D | ----------------------------------- | 192.168.1.1 | 192 | 168 | 1 | 1 |