当前位置: 首页 > 知识库问答 >
问题:

使用分隔符提取MySQL子字符串

嵇浩淼
2023-03-14

我想从MySQL中的字符串中提取子字符串。该字符串包含多个子字符串,子字符串之间用逗号(',')分隔。我需要使用任何MySQL函数提取这些子字符串。

例如:

Table Name: Product
-----------------------------------
item_code  name    colors
-----------------------------------
102        ball     red,yellow,green
104        balloon  yellow,orange,red  

我想选择颜色字段并提取红色、黄色和绿色的子字符串,用逗号分隔。

共有3个答案

夏侯智鑫
2023-03-14

检查第64至69行中SPLIT\u STR函数的使用情况

乔望
2023-03-14

基于https://blog.fedecarg.com/2009/02/22/mysql-split-string-function/,以下是从分隔符分隔的数组中访问值的方法:

/*
  usage:
    SELECT get_from_delimiter_split_string('1,5,3,7,4', ',',  1); -- returns '5'
    SELECT get_from_delimiter_split_string('1,5,3,7,4', ',',  10); -- returns ''
*/
CREATE FUNCTION get_from_delimiter_split_string(
  in_array varchar(255),
  in_delimiter char(1),
  in_index int
)
RETURNS varchar(255) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci
RETURN REPLACE( -- remove the delimiters after doing the following:
  SUBSTRING( -- pick the string
    SUBSTRING_INDEX(in_array, in_delimiter, in_index + 1), -- from the string up to index+1 counts of the delimiter
    LENGTH(
      SUBSTRING_INDEX(in_array, in_delimiter, in_index) -- keeping only everything after index counts of the delimiter
    ) + 1
  ),
  in_delimiter,
  ''
);

以下是字符串运算符的文档供参考:https://dev.mysql.com/doc/refman/8.0/en/string-functions.html

楚昀
2023-03-14

可能的重复:将值从一个字段拆分为两个

不幸的是,MySQL不具有拆分字符串功能。如上链接所示,有用户定义的拆分功能。

获取数据的更详细版本如下所示:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 1), ',', -1) as colorfirst,
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', 2), ',', -1) as colorsecond
....
       SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', n), ',', -1) as colornth
  FROM product;
 类似资料:
  • 问题内容: 我想从MySQL中的字符串中提取子字符串。该字符串包含多个子字符串,以逗号(’,’)分隔。我需要使用任何MySQL函数提取这些子字符串。 例如: 我想选择颜色字段并将子字符串提取为红色,黄色和绿色,并以 逗号 分隔。 问题答案: 可能的重复:将值从一个字段拆分为两个 不幸的是,MySQL没有拆分字符串功能。如上面的链接所示,有用户定义的分割功能。 下面是获取数据的更详细的版本:

  • 具体地说,我需要从表中选择字段的分隔符和之间的部分,其中包含

  • 我有一个来自命令行输入的字符串,如下所示: 这看起来像一个文件,如下所示: 我想提取并存储为。 在python中,我只需要: 我如何在C++中复制它?

  • 本文向大家介绍MySQL查询返回分隔符后的子字符串?,包括了MySQL查询返回分隔符后的子字符串?的使用技巧和注意事项,需要的朋友参考一下 用于在定界符后返回值。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 输出结果 这将产生以下输出- 这是在定界符后返回子字符串的查询。 输出结果 这将产生以下输出-

  • 如何将过滤器列表拆分为单个过滤器元件?split2String在线程“main”java.util.regex中导致:异常。PatternSyntaxException:索引10或(|和)附近的未闭合组(

  • 我希望能够根据子字符串分隔符拆分字符串,在分隔符子字符串的第一个字符之前开始拆分。现在: 将给我,但我希望得到