sql >> Database >  >> RDS >> Mysql

Hoe de INSTR()-functie werkt in MySQL

De INSTR() functie retourneert de positie van het eerste voorkomen van een subtekenreeks binnen een tekenreeks. In principe doet het hetzelfde als de syntaxis met twee argumenten van de LOCATE() functie doet (behalve dat de volgorde van de argumenten is omgekeerd).

Syntaxis

De syntaxis gaat als volgt:

INSTR(str,substr)

Waar str is de tekenreeks die u wilt zoeken, en substr is de substring waarnaar u zoekt.

Voorbeeld 1 – Basisgebruik

SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;

Resultaat:

+--------+
| Result |
+--------+
|     10 |
+--------+

In dit geval is de string dogs begint op positie 10.

Voorbeeld 2 – Niet hoofdlettergevoelig

Het is niet hoofdlettergevoelig:

SELECT 
  INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1',
  INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';

Resultaat:

+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|       10 |       10 |
+----------+----------+

Voorbeeld 3 – Gedeeltelijke overeenkomst

Het maakt niet uit of je zoekterm slechts een deel van een woord vertegenwoordigt, het zal nog steeds overeenkomen (je zoekt tenslotte gewoon naar een substring binnen een string):

SELECT INSTR('Cats and dogs like to run', 'do') AS Result;

Resultaat:

+--------+
| Result |
+--------+
|     10 |
+--------+

Een spatie maakt nog steeds deel uit van de string. U kunt dus indien nodig naar de eerste spatie zoeken:

SELECT INSTR('Cats and dogs like to run', ' ') AS Result;

Resultaat:

+--------+
| Result |
+--------+
|      5 |
+--------+

Voorbeeld 4 – Alleen eerste keer

Onthoud dat alleen de positie van het eerste exemplaar wordt geretourneerd:

SELECT INSTR('Cats and dogs like to run', 'a') AS Result;

Resultaat:

+--------+
| Result |
+--------+
|      2 |
+--------+

Voorbeeld 5 – Wanneer de substring niet kan worden gevonden

Als de subtekenreeks niet wordt gevonden, een resultaat van 0 wordt geretourneerd:

SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;

Resultaat:

+--------+
| Result |
+--------+
|      0 |
+--------+

Voorbeeld 6 – Onjuist aantal parameters

Als u een van de parameters weglaat, krijgt u een foutmelding:

SELECT INSTR('Cats and dogs like to run') AS Result;

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'

U krijgt ook een foutmelding als u te veel parameters opgeeft:

SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'

  1. Hibernate 5:- org.hibernate.MappingException:onbekende entiteit

  2. Hoe u de maand van een datum haalt in T-SQL

  3. De functie Oracle REPLACE() verwerkt geen regelterugloop en regelinvoer

  4. Verbind ODBC-toepassingen op Windows met SugarCRM