将字符串转换为Mysql中的字符

问题描述 投票:1回答:1

所以我有一个字符串,说'hello',我想将其分解为字符,并将每个'h','e','l','l','o'存储在diff变量中。我应该如何在Mysql中做到这一点?任何帮助将不胜感激。我知道如何用Python和Java做到这一点,但这里还不行。

mysql sql string select recursive-query
1个回答
0
投票

如果您正在运行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

Demo on DB Fiddle

| val || :-|| h || e || l || l || o |

在早期版本中,通常为此使用数字表。

如果要按照注释中的指示将字符串重建为ascii字符序列,则可以如下更改外部查询:

select group_concat(ascii(val) order by idx separator '-') ascii_word from cte

您可以将separator调整为最适合您的方式。此produces

| ascii_word || :------------------ || 104-101-108-108-111 |
© www.soinside.com 2019 - 2024. All rights reserved.