首页 > 解决方案 > 在 MySQL 数据库上使用 SUBSTRING_INDEX 语法

问题描述

在我的 MYSQL 表上,我有这些字符串:

24015902-C-72
24018504-147

我需要提取这些输出:

24015902 C-72  
24018504 147

我试过这个查询:

mysql> SELECT
    SUBSTRING_INDEX('24015902-C-72', '-', 1) AS ResultString1,
    SUBSTRING_INDEX('24015902-C-72', '-', - 1) AS ResultString2,
    SUBSTRING_INDEX('24018504-147', '-', 1) AS ResultString3,
    SUBSTRING_INDEX('24018504-147', '-' ,- 1) AS ResultString4;
+---------------+---------------+---------------+---------------+
| ResultString1 | ResultString2 | ResultString3 | ResultString4 |
+---------------+---------------+---------------+---------------+
| 24015902      | 72            | 24018504      | 147           |
+---------------+---------------+---------------+---------------+
1 row in set

mysql> 

但是在这个字符串24015902-C-72上, 的值C-丢失了。

如何解决这个问题?

标签: mysqlsubstring

解决方案


SUBSTRING_INDEX(string, delimiter, number)

  • stringThe original string

  • delimiter: 要搜索的分隔符

  • number: 搜索分隔符的次数。可以是正数或负数。如果是正数,则此函数返回分隔符左侧的所有值。如果是负数,则此函数返回分隔符右侧的所有内容。



在我们的例子中,第二个语句应该像这样工作:

SELECT SUBSTRING_INDEX("24015902-C-72", "-", -2);


推荐阅读