sql >> Database teknologi >  >> RDS >> Mysql

Sådan fungerer INSTR()-funktionen i MySQL

INSTR() funktion returnerer positionen for den første forekomst af en understreng i en streng. Grundlæggende gør det det samme som to-argumentsyntaksen for LOCATE() funktion gør (bortset fra at rækkefølgen af ​​argumenterne er omvendt).

Syntaks

Syntaksen ser sådan ud:

INSTR(str,substr)

Hvor str er den streng, du vil søge efter, og substr er den understreng, du søger efter.

Eksempel 1 – Grundlæggende brug

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

Resultat:

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

I dette tilfælde er strengen dogs starter ved position 10.

Eksempel 2 – Der skelnes ikke mellem store og små bogstaver

Der skelnes ikke mellem store og små bogstaver:

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

Resultat:

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

Eksempel 3 – Delvis match

Det er lige meget, om dit søgeord kun repræsenterer en del af et ord, det vil stadig matche (du søger trods alt blot efter en understreng i en streng):

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

Resultat:

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

Et mellemrum er stadig en del af strengen. Så du kan søge efter den første plads, hvis du har brug for at:

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

Resultat:

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

Eksempel 4 – Kun første forekomst

Husk, kun positionen for den første forekomst returneres:

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

Resultat:

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

Eksempel 5 – Når understrengen ikke kan findes

Hvis understrengen ikke findes, er resultatet 0 returneres:

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

Resultat:

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

Eksempel 6 – Forkert parametertælling

Hvis du udelader nogen af ​​parametrene, får du en fejlmeddelelse:

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

Resultat:

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

Du får også en fejl, hvis du angiver for mange parametre:

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

Resultat:

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

  1. Forbind Metabase med MySQL til dataudforskning

  2. PHP PDO og MySQLi

  3. Hvordan angiver jeg en unik begrænsning for flere kolonner i MySQL?

  4. Hvordan kan jeg tilføje nye kolonner til en SQLite-database, efter at Android-appen er frigivet?