Es scheint zu funktionieren:
SUBSTRING_INDEX (SUBSTRING_INDEX (Kontext, '', 1), '' , -1))
SUBSTRING_INDEX (SUBSTRING_INDEX (context, '', 2), ' ' -1))
SUBSTRING_INDEX (SUBSTRING_INDEX (context,', ' 3),',', - 1))
SUBSTRING_INDEX (SUBSTRING_INDEX (Kontext, '', 4), '', -1))
bedeutet es erste Wert, 2., 3., usw.
Erläuterung:
Die inner substring_index
gibt die ersten n Werte zurück, die durch Kommas getrennt sind. Wenn also Ihre ursprüngliche Zeichenfolge "34,7,23,89" lautet, gibt substring_index(context,',', 3)
"34,7,23" zurück.
Die äußere substring_index
nimmt den Wert von der inneren substring_index
zurückgegeben und die -1
ermöglicht es Ihnen, den letzten Wert zu nehmen. Sie erhalten also "23" von "34,7,23".
Anstatt -1
Wenn Sie -2
angeben, erhalten Sie "7,23", weil die letzten beiden Werte verwendet wurden.
Beispiel:
select * from MyTable where substring_index(substring_index(prices,',',1),',',-1)=3382;
Hier prices
ist der Name einer Spalte in MyTable
.
Ich musste substring_index (substring_index ('column', ',', - 1), ',', 1) verwenden, um den zweiten Wert zu erhalten. Die Verwendung von -2 gab mir immer den ersten Wert. Hat aber super funktioniert. :) –
Die Indizes in dieser Antwort werden ein wenig verwirrend, wenn Sie weitere Zeilen hinzufügen. – Tom