关闭。这个问题需要更加突出重点。它目前不接受答案。**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
11个月前关门了。改进这个问题我想把一个字符串分成几个字符,然后将每个字符存储在不同的变量中。如果我的绳子 hello 我想为“h”、“e”、“l”、“l”、“o”中的每一个指定一个不同的变量。在mysql中如何做到这一点?任何帮助都将不胜感激。
hello
5vf7fwbs1#
如果您运行的是mysql 8.0,则可以使用递归查询从字符串中提取每个字符并将其放在单独的行中:
set @word = 'hello'; with recursive cte as ( select @word as word, left(@word, 1) as val, 1 as idx union all select word, substring(word, idx + 1, 1), idx + 1 from cte where idx < char_length(word) ) select val from cte order by idx
db小提琴演示:
| val | | :-- | | h | | e | | l | | l | | o |
在早期版本中,您通常会为此使用一个数字表。如果要将字符串重建为ascii字符序列(如注解中所示),可以按如下方式更改外部查询:
select group_concat(ascii(val) order by idx separator '-') ascii_word from cte
你可以调整 separator 去最适合你的地方。这将产生:
separator
| ascii_word | | :------------------ | | 104-101-108-108-111 |
1条答案
按热度按时间5vf7fwbs1#
如果您运行的是mysql 8.0,则可以使用递归查询从字符串中提取每个字符并将其放在单独的行中:
db小提琴演示:
在早期版本中,您通常会为此使用一个数字表。
如果要将字符串重建为ascii字符序列(如注解中所示),可以按如下方式更改外部查询:
你可以调整
separator
去最适合你的地方。这将产生: