SUBSTRING INDEX (MySQL)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

Zie ook Strings manipuleren (MySQL)

Basis

substring_index retourneert een deel van de gegeven string, tot aan een bepaalde substring:

select substring_index("wie weet waar willem wever woont","wever",1);

Uitvoer:

wie weet waar willem

Voorbeeld: Parameter afsnoepen

select substring_index("12x34x56","x",2); -- Uitvoer: 12x34

Overige voorbeelden

select substring_index("wie weet waar willem wever woont","w",1); 
(lege string - geen NULL)
select substring_index("wie weet waar willem wever woont","w",2); 
wie
select substring_index("wie weet waar willem wever woont","w",3);
wie weet
select substring_index("wie weet waar willem wever woont","w",-1); 
oont
select substring_index("wie weet waar willem wever woont","w"); 
Error Code: 1582. Incorrect parameter count in the call to native function 'substring_index'

Begin van een string verwijderen?

Dit is wat lastiger: Ik heb een verzameling van string van onderstaand format + beoogd eindresultaat:

abc_def_ghi → def_ghi
def_ghi     → ghi

Dus het gedeelte tot de eerste "_" moet weggelaten worden

Ik kan niet

substring_index(invoer,"_",-2)

gebruiken, omdat er soms één "_" is, en soms twee.

Wellicht kan het eenvoudiger, maar dit werkt in ieder geval (mogelijk moet rechterhaakje na 'right' op dezelfde regel):

right
(
  invoer,
  length(invoer)-length(substring_index(invoer,"_",1))-1
)

Zie ook

Bronnen