mysql 字符串截取

MySQL 字符串截取函数:left(), right(), substring(), substring_index()

1. 字符串截取:left(str, length)

1

2

3

4

5

6

mysql> select left('sqlstudy.com', 3);

+-------------------------+

| left('sqlstudy.com', 3) |

+-------------------------+

| sql |

+-------------------------+

2. 字符串截取:right(str, length)

1

2

3

4

5

6

mysql> select right('sqlstudy.com', 3);

+--------------------------+

| right('sqlstudy.com', 3) |

+--------------------------+

| com |

+--------------------------+

3. 字符串截取:substring(str, pos); substring(str, pos, len)

3.1 从字符串的第 4 个字符位置开始取,直到结束。

1

2

3

4

5

6

mysql> select substring('sqlstudy.com', 4);

+------------------------------+

| substring('sqlstudy.com', 4) |

+------------------------------+

| study.com |

+------------------------------+

3.2 从字符串的第 4 个字符位置开始取,只取 2 个字符。

1

2

3

4

5

6

mysql> select substring('sqlstudy.com', 4, 2);

+---------------------------------+

| substring('sqlstudy.com', 4, 2) |

+---------------------------------+

| st |

+---------------------------------+

3.3 从字符串的第 4 个字符位置(倒数)开始取,直到结束。

1

2

3

4

5

6

mysql> select substring('sqlstudy.com', -4);

+-------------------------------+

| substring('sqlstudy.com', -4) |

+-------------------------------+

| .com |

+-------------------------------+

3.4 从字符串的第 4 个字符位置(倒数)开始取,只取 2 个字符。

1

2

3

4

5

6

mysql> select substring('sqlstudy.com', -4, 2);

+----------------------------------+

| substring('sqlstudy.com', -4, 2) |

+----------------------------------+

| .c |

+----------------------------------+

我们注意到在函数 substring(str,pos, len)中, pos 可以是负值,但 len 不能取负值。

4. 字符串截取:substring_index(str,delim,count)

4.1 截取第二个 '.' 之前的所有字符。

1

2

3

4

5

6

mysql> select substring_index('www.sqlstudy.com.cn', '.', 2);

+------------------------------------------------+

| substring_index('www.sqlstudy.com.cn', '.', 2) |

+------------------------------------------------+

| www.sqlstudy |

+------------------------------------------------+

4.2 截取第二个 '.' (倒数)之后的所有字符。

1

2

3

4

5

6

mysql> select substring_index('www.sqlstudy.com.cn', '.', -2);

+-------------------------------------------------+

| substring_index('www.sqlstudy.com.cn', '.', -2) |

+-------------------------------------------------+

| com.cn |

+-------------------------------------------------+  

4.3 如果在字符串中找不到 delim 参数指定的值,就返回整个字符串

1

2

3

4

5

6

mysql> select substring_index('www.sqlstudy.com.cn', '.coc', 1);

+---------------------------------------------------+

| substring_index('www.sqlstudy.com.cn', '.coc', 1) |

+---------------------------------------------------+

| www.sqlstudy.com.cn |

+---------------------------------------------------+

4.4 截取一个表某个字段数据的中间值 如该字段数据为 1,2,3

1

2

3

4

5

6

mysql> select substring_index(substring_index(该字段, ',', 2) , ',', -1) from 表名;

+--------------------------------------------------------------+

| substring_index(substring_index(该字段, ',', 2); , ',', -1)|

+--------------------------------------------------------------+

| 2 |

+--------------------------------------------------------------+

4.5截取第一个 '.' (倒数)之前的所有字符。

select SUBSTRING_INDEX(content,"<p",(length(content) - length(replace(content, '<p', '')))/length('<p')) 
from (
select 
SUBSTRING_INDEX(content,"",1) content
from table
)

转载地址:https://www.jb51.net/article/173358.htm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值