Mam rekord w bazie danych SQL, który wygląda tak:

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

Tabela jest zdefiniowana w następujący sposób:

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

Jak pisać zapytanie, aby wybrać tylko nazwę i pierwszy wpis z "statystyk". Zasadniczo chcę tylko wybrać pierwszy wpis w "statystykach", który jest przed ":". W tym przypadku byłoby 7.

Dziękuję Ci!

1
Dean 17 luty 2017, 00:39

2 odpowiedzi

Najlepsza odpowiedź

Użyj {x0}}.

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

Edytuj: Dzielenie wartości między przygranicznikami pierwszej 3 {X0}},

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
2
Vamsi Prabhala 16 luty 2017, 23:28

Alternatywne rozwiązanie za pomocą Left i

RomanPerekhrest 16 luty 2017, 21:59