sql—在mysql中将字符串转换为字符

u5i3ibmn  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(422)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

11个月前关门了。
改进这个问题
我想把一个字符串分成几个字符,然后将每个字符存储在不同的变量中。如果我的绳子 hello 我想为“h”、“e”、“l”、“l”、“o”中的每一个指定一个不同的变量。
在mysql中如何做到这一点?任何帮助都将不胜感激。

5vf7fwbs

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 去最适合你的地方。这将产生:

| ascii_word          |
| :------------------ |
| 104-101-108-108-111 |

相关问题