MySQL INSTR() Funktion

Mysql Instr Funktion



I den här handledningen kommer vi att lära oss hur du använder MySQL INSTR()-funktionen för att bestämma positionen för den första förekomsten av en given delsträng.

MySQL INSTR() Funktion

Med funktionen instr() kan vi tillhandahålla en sträng och en delsträng. Funktionen avgör om delsträngen finns i källsträngen. Om delsträngen finns kommer funktionen att returnera positionen för den första förekomsten av delsträngen i källsträngen.

Om delsträngen inte finns i källsträngen kommer funktionen att returnera 0.







Följande visar syntaxen för funktionen instr():



INSTR(källa_sträng, understräng);

Funktionen accepterar två huvudparametrar:



  1. src_string refererar till källsträngen som du vill söka i.
  2. Understrängen definierar understrängen som du söker efter.

Det är bra att komma ihåg att funktionen instr() är skiftlägesokänslig. Följaktligen kommer funktionen endast att lokalisera matchande mönster utan att ta hänsyn till teckenskalet,





För att utföra en skiftlägeskänslig sökning kan du använda andra verktyg, till exempel den binära operatorn.

Exempel på funktionsanvändning

Följande exempel visar hur vi kan använda funktionen instr() för att söka efter en specifik delsträng.



SELECT INSTR('MySQL är en fantastisk databasmotor', 'databas') som pos;

Exemplet ovan kommer att returnera startpositionen för strängen 'databasen' från källsträngen. I det här fallet är positionen för databassträngen 21 som visas i utgången nedan:

pos|

---+

21|

Exempel 2

Vi kan använda lower() eller övre funktioner för att konvertera en sträng till gemener eller versaler. Detta kan hjälpa oss att övervinna funktionens skiftlägeskänslighet.

Exempel:

SELECT INSTR(lower('MySQL är en fantastisk databasmotor'), lower('DATABASE')) som pos;

Resultat:

pos|

---+

21|

Detta kommer att returnera ett liknande värde som det första exemplet, eftersom källsträngen och delsträngen konverteras till gemener före sökoperationen.

Exempel 3

Vi kan också använda funktionen instr() med en tabellkolumn, som visas i syntaxen nedan.

VÄLJ INSTR(kolumnnamn, 'delsträng')

FRÅN tabellnamn;

Exempel:

SKAPA TABELL bloggar (

ID INT INTE NULL AUTO_INCREMENT PRIMÄRNYCKEL,

titel VARCHAR(255) NOT NULL,

innehåll TEXT INTE NULL,

date_posted DATE NOT NULL,

författare VARCHAR(255) NOT NULL

);

Infoga några data:

INFOGA I bloggar (titel, innehåll, posted_datum, författare)

VÄRDEN ('Mitt första blogginlägg', 'Detta är innehållet i mitt första blogginlägg', '2022-12-09', 'Jane Doe');

INFOGA I bloggar (titel, innehåll, posted_datum, författare)

VÄRDEN ('Mitt andra blogginlägg', 'Detta är innehållet i mitt andra blogginlägg', '2022-12-10', 'Jane Doe');

INFOGA I bloggar (titel, innehåll, posted_datum, författare)

VÄRDEN ('Mitt tredje blogginlägg', 'Detta är innehållet i mitt tredje blogginlägg', '2022-12-11', 'Jane Doe');

välj * från bloggar;

Resultattabell:

Vi kan använda funktionen instr() för att få positionen för delsträngen 'blogg' i innehållskolumnen som visas:

välj titel, instr(innehåll, 'inlägg') från bloggar;

Resultat:

Slutsats

I den här handledningen lärde du dig hur du använder INSTR()-funktionen i MySQL för att hitta positionen för en delsträng i en sträng. Funktionen är skiftlägeskänslig. Därför kan du behöva använda funktioner som nedre och övre för att konvertera söksträngarna till önskade fall.