收藏本页 | 设为主页 | RSS
LOGO

我就上乐乐吧

PHP里面有个函数,explode(),该函数功能是用指定分隔符来把字符串分割成数组,使用起来可以说是相当好用,但是MySQL并没有对应的函数可以来支持,所以就得自...

您当前的位置:首页 » 技术杂萃
全站公告
重要提示!

本站收集各类美图,以无LOGO原汁原味图为主!欢迎大家交流。
怕失联,请认准如下地址:
微博:传送门
土豆:传送门
电报:传送门
微信:superimagelove
花瓣:传送门
Q群1:231151757
Q群2:583138281
文件解压密码:593668.com
热心赞助

站内搜索
 
相关文章
热门文章
热搜词组
文章归档
友情链接
Mysql语句实现php函数explode()的分割字符串功能

发布日期:2019-10-10  关键词: MySQL

PHP里面有个函数,explode(),该函数功能是用指定分隔符来把字符串分割成数组,使用起来可以说是相当好用,但是MySQL并没有对应的函数可以来支持,所以就得自行来想办法实现。

在这之前要了解下Mysql的一个系统函数:

SUBSTRING_INDEX(str,delim,count)

该函数返回字符串str中在第count个出现的分隔符delim之前的子串。如果count是一个正数,那么就返回从最后的(从左边开始计数)分隔符到左边所有字符。如果count 是负数,返回从最后的(从右边开始计数)分隔符到右边所有字符。

现在就来尝试直接使用该函数来分解www.593668.com[以.做为分割符],SQL如下:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.593668.com', '.', 1),'.',-1) AS n1,SUBSTRING_INDEX(SUBSTRING_INDEX('www.593668.com', '.',2),'.',-1) AS n2,SUBSTRING_INDEX(SUBSTRING_INDEX('www.593668.com', '.', 3),'.',-1) AS n3

执行结果确实证明分解成功,但是问题又来了,针对不确定的字符串,肯定要先判断字符串会分割成多少条记录[这里是使用.来分割,所以取巧办法是字符串先替换.再来跟原始字符串长度比较]。

SELECT LENGTH('www.593668.com') - LENGTH(REPLace('www.593668.com', '.', '')) + 1

再来借助于mysql.`help_topic`表的自增系列ID,组合一个,形成一个更复杂的SQL:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('www.593668.com','.',help_topic_id + 1),'.',- 1)
FROM mysql.`help_topic`
WHERE help_topic_id < (SELECT LENGTH('www.593668.com') - LENGTH(REPLACE('www.593668.com', '.', '')) + 1)

执行结果如下:

Mysql语句实现php函数explode()的分割字符串功能,MySQL,技术杂萃

这样就可以随意分割任意字符串了。大家有兴趣的话,不妨一试,体会下这个。
猜您喜欢:
Q群: 231151757微信:superimagelove 官网:www.593668.com