我在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 。