gpt4 book ai didi

mysql - 从 MySQL 中的列表字符串中获取单个项目

转载 作者:行者123 更新时间:2023-11-29 06:47:55 24 4
gpt4 key购买 nike

给定以下表示可能列表的字符串,我如何在指定索引处获取项目 n

  • 1,2,3,4,5
  • word1 word2 word3
  • 管道|分隔|列表

此功能的可能原因是

  • 从 GROUP_CONCAT 输出中提取特定元素
  • 从 SET 列输出中提取特定元素(当转换为字符串时)
  • 从包含逗号分隔列表的规范化程度较低的表中提取特定元素
  • 在迭代过程中使用循环遍历列表并对其中的每个元素执行操作

最佳答案

native 没有此功能。您可以使用两个 SUBSTRING_INDEX 函数。并且您需要检查该特定索引项是否存在:

SET @string:='1,2,3,4,5';
SET @delimiter:=',';
SET @n:=6;

SELECT
CASE WHEN
CHAR_LENGTH(@string)-CHAR_LENGTH(REPLACE(@string, @delimiter, ''))>=
@n*CHAR_LENGTH(@delimiter)-1
THEN
SUBSTRING_INDEX(SUBSTRING_INDEX(@string, @delimiter, @n), @delimiter, -1)
END;
  • SUBSTRING_INDEX(@string, @delimiter, @n) 返回字符串 @string@n 之前的子字符串>@delimiter.
  • SUBSTRING_INDEX( ... , @delimiter, -1) 返回最后一个分隔符右侧的所有内容
  • 您需要检查分隔符 @n 是否存在。我们可以减去带有分隔符的字符串的长度,以及删除分隔符的字符串 - 使用 REPLACE(@string, @delimiter, '') - 看看它是否大于 @n*CHAR_LENGTH(@delimiter)-1

关于mysql - 从 MySQL 中的列表字符串中获取单个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17485564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com