一行实现MySQL的split函数,不用正则

找了半天,发现网上都没有,各种用正则以及函数实现的,感觉麻烦,就去官网查看,发现了一个高手的评论,给大家爽一爽:

select SUBSTRING_INDEX('name=liwenguang&psw=xxx&src=www.liwengaung.cn','&', 1)

select SUBSTRING_INDEX(SUBSTRING_INDEX('name=liwenguang&psw=xxx&src=www.liwengaung.cn' , '&', 2 ),'&', -1)

select SUBSTRING_INDEX('name=liwenguang&psw=xxx&src=www.liwengaung.cn','&', -1)

这样你可以直接用上了,主要用于将原始表转化为业务表,方便业务调用,下面的是原文,ip地址应该是 xx.oo.pp.zz 格式:

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
FROM log_table

原文来自于:https://dev.mysql.com/doc/refman/5.7/en/string-functions.html 下的评论

推荐阅读更多精彩内容