MySQL substring_index应用案例,截取字符串部分片段,并将其插入新表中。

考虑MySQL中表格如下图所示,数据从csv文件导入,作者栏格式为  “ [国籍]作者名 ”,我希望将作者名与国籍分开显示。

此 database  名为  mybooklist。

此  table 名为  booklist 。

首先是将作者名字提取出来,需要提取方括号 " ] " 右边的所有字符。

SELECT substring_index(作者,"]",-1) FROM booklist;

 得到结果为

 然后是提取国籍,是 " [ " 右边以及 " ]  " 左边的字符,需要嵌套一个substring_index,

SELECT substring_index(substring_index(作者,"]",1),"[",-1) FROM booklist;

得到的结果为

 

方便起见,创建新  table  名为  booklist_2 。

 创建表格代码就不贴了。

可以用 MySQL Workbench 可视化操作,创建非常方便。

创建完表格后,就可以将原表格中的数据提取出来插入新表中,一一对应就好。

INSERT INTO booklist_2
SELECT 
序号,
书名,
substring_index(作者,"]",-1),
substring_index(substring_index(作者,"[",-1),"]",1),
译者,
出版社,
出版日期,
ISBN,
总页码,
价格,
书籍所在书架,
添加时间
FROM booklist;

结果为

 

这里最主要的就是 substring_index 的使用。

基本的使用方法为:

substring_index( 字符串,"截取标的",-/+数字),这里的负号代表截取标的的右侧,正号(可以省略)代表截取左侧,数字代表从第几个字符开始截取,本文中就是从方括号的左侧或右侧第一个字符截取,所以用 -1 或 1 ,实际应用中可以根据自己需要选择截取的目标。

关于mysql字符串的截取还有很多应用方法,有大神总结,在站内多搜搜也就明白了。

——————

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值