Mysql substring_index 用法
在数据库里面,我们经常会遇到截取某段字符来取值,所以我们可以尝试substring_index,不多讲,只看下面的例子就知道了。
例1
1 2 3 |
select substring_index('blog.faystar.com','.',1) #结果显示blog |
例2
1 2 3 |
select substring_index('blog.faystar.com','.',2) #结果显示blog.faystar |
例3
1 2 3 |
select substring_index('blog.faystar.com','.',-1) #结果显示com |
例4
1 2 3 |
select substring_index('blog.faystar.com','.',-2) #结果显示faystar.com |
上面的几个例子中,搜索“.”来取值,正数为向右查找关键字出现的次数后取值,负值则是向左取值。
知道了原理,我们来一个复杂点的。
某table的一个address值如下:
a:7:{s:2:"id";s:2:"21";s:8:"realname";s:9:"刘小小";s:6:"mobile";s:11:"138000000";s:7:"address";s:41:"春园路一号一单元";s:8:"province";s:9:"辽宁省";s:4:"city";s:9:"大连市";s:4:"area";s:12:"甘井子区";}
可以看到上面的值是一个序列化存储的值,我们要想办法把里面的值查询出来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SELECT SUBSTRING_INDEX( SUBSTRING_INDEX(o.address, '";s:6:"mobile"', 1),'"',-1) AS 收货人, SUBSTRING_INDEX( SUBSTRING_INDEX(o.address, 'mobile";s:11:"', -1),'";s:7:"address"',1) AS 收货电话, concat( SUBSTRING_INDEX( SUBSTRING_INDEX(o.address, '";s:4:"city"', 1),'"',-1), SUBSTRING_INDEX( SUBSTRING_INDEX(o.address, '";s:4:"area"', 1),'"',-1), SUBSTRING_INDEX( SUBSTRING_INDEX(o.address, '";}',1), '"', -1), SUBSTRING_INDEX( SUBSTRING_INDEX(o.address, '";s:8:"province"', 1),'"',-1) )AS 收货地址 FROM shop_orders AS o |
得到的结果如下:
刘小小 138000000 辽宁省大连市甘井子区春园路一号一单元
上面使用了嵌套,看起来是不是很简单,那就试试吧。
版权声明:
作者:心飞翔
链接:https://www.faystar.com/techshare/program/1443.html
来源:心飞翔
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
Mysql substring_index 用法
在数据库里面,我们经常会遇到截取某段字符来取值,所以我们可以尝试substring_index,不多讲,只看下面的例子就知道了。
例1
……
共有 0 条评论