Mysql中字符串截取SUBSTRING_INDEX

当我们想要对数据库中的某个数据的字段进行截取或者分隔的时候,可以使用'substring_index'函数,它会返回一个字符串,该字符串源自原本字符串中使用特定分隔符,分隔出来的指定的字符串。

函数的语法是:

//str是源字符串,delim是分隔符,count是指定需要分隔到什么位置。
SUBSTRING_INDEX(str,delim,count)

'str'就是我们想要进行分隔的源字符串。

'delim'里面写入这个字符串的分隔符。

'count'的值分为正数和负数,如果'count'是正数,那么’substring_index‘函数会从字符串左边向右边进行分隔,分隔的到第'count'个分隔符的字符串结束。如果'count'为负数,那么'substring_index'就会字符串右边向左边进行分隔,分隔的到第'count'个分隔符的字符串结束。

可能这样说的不是很能理解,可以通过下面的例子来配合理解

SELECT SUBSTRING_INDEX('haha.dashuaige.me', '.', 1);
//以.为分隔符,到第一个.结束,输出结果就是haha

如果我们想要拿到最后的com,就可以这么写

SELECT SUBSTRING_INDEX('haha.dashuaige.me', '.', -1);
//以.为分隔符,从最后一位开始到遇到的第一个.结束,输出结果就是me

如果我们只想拿到中间'dashuaige'这个值怎么办呢,可以这么写

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('haha.dashuaige.me','.', -2),'.','1');
//这段代码的意思就是,先截取原字段后面两段,然后再取出左边第一个字段。
就可以将'dashuaige'单独取出

你可能感兴趣的:(mysql学习,sql,java,数据库)