MySQL SUBSTRING_INDEX() 函数

MySQL SUBSTRING_INDEX() 从给定字符串中返回指定数量的分隔符出现之前的子字符串。

当指定数字为正数时从最终分隔符的左侧返回子字符串,当指定数字为负数时从最终分隔符的右侧返回子字符串。

如果指定的次数大于分隔符的出现次数,则返回的子字符串将是总字符串。如果指定的数字为 0,则不会从给定的字符串中获取任何内容。

句法:

SUBSTRING_INDEX(str, delim, count)

争论:

姓名 描述
字符串 一个字符串。
我分享 一个分隔符。
数数 一个整数,指示 delim 的出现次数。

语法图:

示例:MySQL SUBSTRING_INDEX() 函数

下面的 MySQL 语句从给定的字符串“www.mytestpage.info”返回最终定界符左侧的子字符串,即第二个定界符 (.)。从字符串的左侧开始计数。

代码:

SELECT SUBSTRING_INDEX('www.mytestpage.info','.',2);
复制

样本输出:

mysql> SELECT SUBSTRING_INDEX('www.mytestpage.info','.',2);
+----------------------------------------------+
| SUBSTRING_INDEX('www.mytestpage.info','.',2) |
+----------------------------------------------+
| www.mytestpage                               | 
+----------------------------------------------+
1 row in set (0.02 sec)

图片展示:

使用负计数的 MySQL SUBSTRING_INDEX() 函数示例

下面的 MySQL 语句从给定字符串“www.mytestpage.info”返回最后定界符右侧的子字符串,即第二个定界符 (.)。从字符串的右侧开始计数。

代码:

SELECT SUBSTRING_INDEX('www.mytestpage.info','.',-2); 
复制

样本输出:

mysql> SELECT SUBSTRING_INDEX('www.mytestpage.info','.',-2); 
+-----------------------------------------------+
| SUBSTRING_INDEX('www.mytestpage.info','.',-2) |
+-----------------------------------------------+
| mytestpage.info                               | 
+-----------------------------------------------+
1 row in set (0.00 sec)

图片展示:

示例:使用 MySQL SUBSTRING_INDEX() 函数将 IP 地址拆分为 4 个相应的八位字节

以下 MySQL 命令将 IP 地址拆分为 4 个相关的八位字节(数字信息单元)。假设 IP 地址存储在名为“log_file”的示例表中。

mysql> SELECT ip, SUBSTRING_INDEX(ip,'.',1) AS part1, 
SUBSTRING_INDEX(SUBSTRING_INDEX(ip,'.',2),'.',-1) AS part2, 
SUBSTRING_INDEX(SUBSTRING_INDEX(ip,'.',-2),'.',1) AS part3, 
SUBSTRING_INDEX(ip,'.',-1) AS part4  FROM log_file;
+-----------------+-------+-------+-------+-------+
| ip              | part1 | part2 | part3 | part4 |
+-----------------+-------+-------+-------+-------+
| 127.0.0.1       | 127   | 0     | 0     | 1     |
| 192.128.0.15    | 192   | 128   | 0     | 15    |
| 255.255.255.255 | 255   | 255   | 255   | 255   |
+-----------------+-------+-------+-------+-------+
3 rows in set (0.00 sec)

猜你喜欢

转载自blog.csdn.net/allway2/article/details/126299485