Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Funktionsweise der INSTR()-Funktion in MySQL

Der INSTR() Die Funktion gibt die Position des ersten Vorkommens eines Teilstrings innerhalb eines Strings zurück. Im Grunde macht es dasselbe wie die Zwei-Argument-Syntax von LOCATE() Funktion tut (außer dass die Reihenfolge der Argumente umgekehrt ist).

Syntax

Die Syntax lautet wie folgt:

INSTR(str,substr)

Wobei str die Zeichenfolge ist, die Sie suchen möchten, und substr ist die Teilzeichenfolge, nach der Sie suchen.

Beispiel 1 – Grundlegende Verwendung

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

Ergebnis:

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

In diesem Fall die Zeichenfolge dogs beginnt bei Position 10.

Beispiel 2 – Groß-/Kleinschreibung nicht beachten

Groß- und Kleinschreibung wird nicht beachtet:

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

Ergebnis:

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

Beispiel 3 – Teilweise Übereinstimmung

Es spielt keine Rolle, ob Ihr Suchbegriff nur einen Teil eines Wortes darstellt, er wird dennoch übereinstimmen (schließlich suchen Sie nur nach einer Teilzeichenfolge innerhalb einer Zeichenfolge):

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

Ergebnis:

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

Ein Leerzeichen ist immer noch Teil der Zeichenfolge. So können Sie bei Bedarf nach dem ersten Leerzeichen suchen:

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

Ergebnis:

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

Beispiel 4 – Nur erstes Vorkommen

Denken Sie daran, dass nur die Position des ersten Vorkommens zurückgegeben wird:

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

Ergebnis:

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

Beispiel 5 – Wenn die Teilzeichenfolge nicht gefunden werden kann

Wenn der Teilstring nicht gefunden wird, ein Ergebnis von 0 wird zurückgegeben:

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

Ergebnis:

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

Beispiel 6 – Falsche Parameterzählung

Wenn Sie einen der Parameter weglassen, erhalten Sie eine Fehlermeldung:

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

Ergebnis:

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

Sie erhalten auch eine Fehlermeldung, wenn Sie zu viele Parameter angeben:

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

Ergebnis:

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