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

时间:2017-02-16 21:39:15

标签: php mysql sql database

我在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`) 

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

谢谢!

2 个答案:

答案 0 :(得分:2)

使用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

答案 1 :(得分:2)

使用LEFTLOCATE函数的替代解决方案:

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

注意:

  

对于在字符串位置上操作的函数,第一个位置是   编号 1