选择字符串中的所有字符,直到特定字符mysql



我在SQL数据库中有一个记录,看起来像这样:

'839af0d3-9301-33d0-abce-e16a673980fd', 'Aforic', '7:74324:35:4:1:1203:348:27:415:158:2:0:0:0D-5H-17M-26S', 'Tactician', ' '

表定义如下:

`T1` (`player_uuid`, `player_name`, `stats`, `inventory`, `selected`) 

如何编写查询以仅选择"统计数据"的名称和第一个条目。基本上,我只想选择"统计"中的第一个条目:":"。在这种情况下,将是7。

谢谢!

使用SUBSTRING_INDEX

select player_name,substring_index(stats,':',1) 
from T1

编辑:在前3个:定界器之间将值分配,

select player_name
,substring_index(stats,':',1) as col_1
,substring_index(substring_index(substring_index(stats,':',3),':',-2),':',1) as col_2
,substring_index(substring_index(stats,':',3),':',-1) as col_3
from T1

使用左侧并找到函数的替代解决方案:

SELECT
    player_name, LEFT(stats, LOCATE(':', stats) - 1)
FROM 
    T1

注意:

对于在字符串位置上运行的功能,第一个位置是 编号 1

最新更新