sql >> Databasteknik >  >> RDS >> Mysql

Hur INSTR()-funktionen fungerar i MySQL

INSTR() funktion returnerar positionen för den första förekomsten av en delsträng i en sträng. I grund och botten gör den samma sak som syntaxen med två argument för LOCATE() funktion gör det (förutom att ordningen på argumenten är omvänd).

Syntax

Syntaxen ser ut så här:

INSTR(str,substr)

Där str är strängen du vill söka efter, och substr är understrängen som du söker efter.

Exempel 1 – Grundläggande användning

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

Resultat:

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

I det här fallet, strängen dogs börjar på position 10.

Exempel 2 – Ej skiftlägeskänsligt

Det är inte skiftlägeskänsligt:

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 |
+----------+----------+

Exempel 3 – Delvis matchning

Det spelar ingen roll om din sökterm bara representerar en del av ett ord, den kommer fortfarande att matcha (trots allt, du söker bara efter en delsträng i en sträng):

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

Resultat:

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

Ett mellanslag är fortfarande en del av strängen. Så du kan söka efter det första utrymmet om du behöver:

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

Resultat:

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

Exempel 4 – Endast första förekomsten

Kom ihåg att endast positionen för den första förekomsten returneras:

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

Resultat:

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

Exempel 5 – När delsträngen inte kan hittas

Om delsträngen inte hittas, ett resultat av 0 returneras:

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

Resultat:

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

Exempel 6 – Antal felaktiga parametrar

Om du utelämnar någon av parametrarna får du ett felmeddelande:

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 också ett felmeddelande om du anger för många parametrar:

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. MySQL-servern får slut på minne eller startar inte

  2. Effektiva ISNUMERIC()-ersättningar på SQL Server?

  3. Få alla tabellnamn för en viss databas genom SQL-fråga?

  4. CHARTOROWID() Funktion i Oracle