2013-01-15 9 views
12

Jaki byłby najprostszy sposób na znalezienie indeksu trzeciej spacji w ciągu znaków.MySQL Drugi (lub trzeci) indeks w łańcuchu

Moim celem jest uzyskanie CCC z tej oddzielonej spacjami listy: AAAA BBBB CCCC DDDD EEE. gdzie A i B i D są ustaloną długością, a C ma zmienną długość, E F G są opcjonalne.

W Javie użyłbym indexof, z punktem początkowym 10, który dostarczyłby mi trzecią przestrzeń, ale wydaje się, że nie mogę tego zrobić w MySQL, więc pomyślałem, że może uda mi się znaleźć "trzeci indeks" funkcjonować?

Odpowiedz

33

co chcesz używać SUBSTRING_INDEX funkcję jak ten

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(field, ' ', 3), ' ', -1) 
FROM table 

wewnętrznej wywołania funkcji byłoby dostać się do AAAA BBBB CCCC podczas gdy zewnętrzna wywołanie funkcji byłoby pare że do zaledwie CCCC.

+0

Doskonałe wyjaśnienie, jak uzyskać indeks pozycji według numeru. Więc jeśli mam csv z 8 przedmiotami, mogę teraz uzyskać dowolne z tych 8 przez liczbę ... Bardzo ładne dzięki bardzo człowieku. –