mysql substring substring_index functions with examples
Lees meer over MySQL SUBSTRING- en SUBSTRING_INDEX-functies en het gebruik ervan met meerdere voorbeelden:
MySQL Substring-functie wordt gebruikt om een substring of part-string te extraheren tegen de input-string. Zoals de naam suggereert, werkt de functie Substring op een stringinvoer en retourneert een kleinere subtekenreeks voor de opgegeven opties.
We zullen ook leren over een andere variant van de SUBSTRING genaamd SUBSTRING_INDEX. Deze functie accepteert teken- of tekenreekswaarde als scheidingsteken en voert een zoekopdracht uit op basis van de opgegeven scheidingstekenwaarde.
We zullen ook enkele voorbeelden bekijken om te begrijpen hoe deze functies kunnen worden gebruikt bij het opvragen van gegevens als onderdeel van de SELECT-query's.
Wat je leert:
MySQL-SUBSTRING
Syntaxis:
Er zijn 2 manieren waarop we de SUBSTRING-functie kunnen gebruiken.
Laten we de syntaxis begrijpen voordat we in de voorbeelden duiken.
- {Tekenreekswaarde}: Dit is de werkelijke String-waarde of de kolomnaam met de String waaraan moet worden gewerkt.
- {start_index}: start_index is de index van links of rechts waar de substring zou worden gestart. De waarden kunnen positief of negatief zijn, afhankelijk van of we String respectievelijk aan de linkerkant of aan de rechterkant willen extraheren. Met de voorbeelden wordt dit duidelijker.
- {count}: Dit veld is optioneel en specificeert het aantal tekens uit de start_index veld waarvoor de substring moet worden geëxtraheerd. Indien niet vermeld, dan is de hele string te beginnen met de matching start_index zou worden teruggegeven.
De indeling2 is een variatie op indeling1, behalve dat deze beter leesbaar is met de trefwoorden FROM en FOR. Dus hier wordt FROM gebruikt voordat de start_index waarde, en FOR wordt gebruikt voordat de tellen
Laten we enkele voorbeelden bekijken om de MySQL SUBSTRING-functie te begrijpen.
Laten we de String Input-waarde nemen als Help bij het testen van software
De stringindexen zien eruit als in de onderstaande tabel
1 | twee | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | elf | 12 | 13 | 14 | vijftien | 16 | 17 | 18 | 19 | twintig | eenentwintig |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
S | of | f | t | in | naar | r | is | T | is | s | t | ik | n | g | H. | is | l | p |
MySQL SUBSTRING Voorbeeld
Zonder graaf
Stel dat we de Help-tekst uit de bovenstaande String willen extraheren - H heeft een index van 18
Laten we de onderstaande vraag eens bekijken:
Het is belangrijk op te merken dat we geen enkele waarde hebben genoemd voor de tellen, maar we krijgen nog steeds de juiste String - dit is omdat wanneer de telling wordt weggelaten, de hele String wordt geretourneerd, beginnend bij de opgegeven index.
Als we in dit geval de startindex vermelden, bijvoorbeeld, voor ‘T’ (index 10)
Zoals je hierboven kunt zien, bevat de output de volledige tekst ‘Testing Help’.
Met Count
Laten we nu een voorbeeld bekijken waarin we het aantal te retourneren tekens zullen noemen.
Stel dat we gewoon het woord ‘Testen’ willen extraheren uit de tekenreeks ‘Help voor softwaretests’. Dan kunnen we tellen noemen als - 7 (wat de lengte is van het woord ‘Testen)
Laten we de onderstaande vraag eens bekijken:
Hier hebben we zowel de startindex als het aantal tekens beschreven als onderdeel van de query om het vereiste resultaat te krijgen.
Met negatieve indexwaarden
Tot dusverre hebben we voor de voorbeelden die we hebben gezien de start_index als een positieve waarde.
We kunnen de start_index ook specificeren als negatief, wat simpelweg betekent dat in plaats van vanaf links te tellen, de MySQL-engine zal proberen de startindex vanaf het einde van de string te tellen.
Laten we een voorbeeld bekijken
Laten we voor onze String ‘Software Testing Help’ een rij hieronder toevoegen om de juiste indexen te identificeren
L. | 1 | twee | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | elf | 12 | 13 | 14 | vijftien | 16 | 17 | 18 | 19 | twintig | eenentwintig |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
S | of | f | t | in | naar | r | is | T | is | s | t | ik | n | g | H. | is | l | p | |||
R | eenentwintig | twintig | 19 | 18 | 17 | 16 | vijftien | 14 | 13 | 12 | elf | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | twee | 1 |
Dus de onderste rij vertegenwoordigt hier de juiste indexen. Stel nu dat we het woord ‘Testen’ willen extraheren met de functie MySQL SUBSTRING met de juiste index.
De juiste index voor ‘T’ in testen is 12 (en de linkerindex is 10)
Zoals u in het bovenstaande voorbeeld kunt zien, levert het vermelden van de juiste indexen als een negatieve waarde nog steeds hetzelfde resultaat op.
Index buiten de grenzen
Probeer nu enkele negatieve scenario's
- Wanneer opgegeven start_index niet bestaat: d.w.z. de gespecificeerde index is buiten het bereik, dan zou de uitvoer leeg zijn.
- Als het opgegeven aantal negatief is of meer dan de totale lengte van de string, dan is de uitvoer gewoon de rest van de string (beginnend met de opgegeven start_index).
Je kunt hierboven zien dat hier de telling werd genoemd als 100, maar de String is slechts 21 tekens lang.
- Laten we nog een scenario proberen met de telling die als negatief wordt vermeld.
Ook hier zal er geen fout zijn en zal er alleen een lege string zijn die de uitvoer zou zijn.
MySQL SUBSTRING_INDEX
Dit is een andere variant van de MySQL SUBSTRING-functie.
Hier kunnen we, in plaats van de werkelijke waarde van start_index te vermelden, eenvoudig het teken en de index vermelden en het aantal keren dat het scheidingsteken moet worden doorzocht voordat de uitvoer wordt geretourneerd.
Een belangrijk punt om op te merken is de SUBSTRING_INDEX
MySQL SUBSTRING INDEX-functie:
- {StringValue / Column}: Werkelijke tekenreeksinvoer of de kolomnaam in de SELECT-query.
- Scheidingsteken: Het is het teken of de subtekenreeks waarnaar moet worden gezocht om de resterende String als uitvoer te extraheren. Deze waarde is hoofdlettergevoelig, dus deze moet worden gespecificeerd zoals deze in de werkelijke tekenreeks wordt weergegeven.
- n: Aantal scheidingstekens - d.w.z. het aantal keren dat het scheidingsteken moet worden doorzocht voordat de tekenreeks wordt geretourneerd.
Laten we dit begrijpen met behulp van enkele voorbeelden.
We zullen dezelfde string ‘Software Testing Help’ gebruiken als onze Input String voor alle voorbeelden die we in de volgende sectie hieronder gaan bespreken.
Op zoek naar een personage
Bij het zoeken naar teken ‘T’ zou de uitvoer ‘Software’ zijn. Merk op dat de extra spatie na het woord Software ook wordt opgenomen.
Zoek naar een personage dat meer dan eens voorkomt. Hier is het - ‘e’
In dit voorbeeld: aangezien we de telling hebben gespecificeerd als 1, zou de uitvoer String zijn tot de eerste keer dat ‘e’ wordt bereikt.
Verander de telling naar 2 voor hetzelfde karakter ‘e’.
Nu kunnen we zien dat substring tot aan het tweede voorkomen van teken ‘e’ wordt geretourneerd.
Neem een ander voorbeeld om te begrijpen dat de SUBSTRING INDEX hoofdlettergevoelig is. Laten we proberen met de letter ‘t’ in plaats van ‘T’
over het algemeen worden de meeste fouten (defecten) gevonden in welke twee testperiodes?
Zoeken naar een tekenreeks
We kunnen de functie SUBSTRING INDEX gebruiken voor het zoeken naar een string in plaats van een teken. Laten we zoeken naar het woord ‘Testen’.
Zoeken naar een niet-bestaande string
SUBSTRING INDEX gebruiken met een string die niet bestaat.
De uitvoer is hier misschien een beetje onverwacht. Maar aangezien de MySQL-engine de vereiste overeenkomst niet kan vinden, retourneert het de volledige tekenreeks als uitvoer.
Zoeken naar teken of tekenreeks in omgekeerde volgorde
Net als bij de SUBSTRING-functie, maakt de SUBSTRING INDEX-functie het ook mogelijk om het aantal als negatieve getallen te vermelden. Dit betekent dat in plaats van van links naar rechts te gaan, de MySQL Engine zal proberen een overeenkomst van rechts naar links te vinden.
Begrijp dit aan de hand van enkele voorbeelden.
In het bovenstaande voorbeeld kunt u zien dat het scheidingsteken ‘T’ is, terwijl het aantal -1 is. De uitvoer is dus een substring van rechts totdat de eerste overeenkomst voor de letter ‘T’ is verkregen.
Toepassingen van MySQL SUBSTRING-functie
We gebruiken over het algemeen de MySQL String-functies bij het opvragen van gegevens uit 1 of meerdere tabellen. Het kan worden gebruikt om waarden in een kolom te splitsen, of alleen om de essentiële waarden weer te geven volgens de behoefte.
Voorbeeld: Stel dat we een tabel met werknemersgegevens hebben die bestaat uit id, naam en adres.
En de adreskolom heeft de indeling - {HouseNo}, {StreetName}
Hieronder staat het script om een tabel te maken en dummy-gegevens in te voegen:
Gebruik de MySQL SUBSTRING-functie om de huisnummer geëxtraheerd uit de adreskolom zoals hieronder weergegeven.
Uitgang:
naam | huisnummer | adres | leeftijd |
---|---|---|---|
Akash malhotra | 22 | 22, Defensiekolonie | 24 |
Steve Wilson | 12/4 | 12/4, Wilson Street | 28 |
Monica Singh | 190 | 190, Smith Lane | 32 |
In de bovenstaande zoekopdracht kunt u zien dat we de functie SUBSTRING_INDEX hebben gebruikt om het huisnummer uit de adreskolom te halen en dat we ‘,’ als scheidingsteken hebben gebruikt.
Vergelijkbaar met dit, kunnen er veel toepassingen zijn waarin we de String willen extraheren om zinvolle informatie op te halen uit een grotere String-invoer of de kolomwaarde.
Veel Gestelde Vragen
V # 1) Welke MySQL-functie retourneert de positie van de eerste keer dat een SUBSTRING in de string voorkomt?
Antwoord: MySQL biedt 2 functies om een SUBSTRING te retourneren of extraheren uit een gegeven String- of kolomwaarde.
- ONDERGROND
Voorbeeld:
- ONDERGRONDINDEX
Voorbeeld:
V # 2) Wat is SUBSTRING_INDEX in MySQL?
Antwoord: De functie SUBSTRING_INDEX is een variant van de functie SUBSTRING. Terwijl u in de normale SUBSTRING-functie de index als een getal in de Input String moet vermelden, kunt u voor de SUBSTRING_INDEX-functie een teken of een kleinere substring noemen waarnaar moet worden gezocht.
Voorgestelde lezing = >> MySQL COUNT-zelfstudie
Gevolgtrekking
In deze tutorial hebben we geleerd over MySQL SUBSTRING en SUBSTRING_INDEX-functies. Beide functies extraheren een substring tegen de opgegeven invoertekenreeks, maar werken op een iets andere manier.
SUBSTRING verwacht dat de index de werkelijke getallen zijn, terwijl de SUBSTRING_INDEX het scheidingsteken kan hebben opgegeven als een teken- of tekenreekswaarde, en vervolgens kan de MySQL-engine extraheren tegen de vereiste overeenkomende tekenreeks of teken.
Beide functies worden grotendeels gebruikt waar een kolom met meerdere stukjes informatie kan worden geëxtraheerd in subkolommen met behulp van String-extractielogica op basis van de juiste vereisten.
Aanbevolen literatuur
- C # String Tutorial - String-methoden met codevoorbeelden
- Java substring () -methode - zelfstudie met voorbeelden
- Java String bevat () Method Tutorial met voorbeelden
- Java String CompareTo Method met programmeervoorbeelden
- Stringfuncties in C ++: getline, subtekenreeks, stringlengte en meer
- C ++ String Conversion Functions: string to int & int to string
- Python String-functies
- MySQL CONCAT- en GROUP_CONCAT-functies met voorbeelden