MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie INSTR() in MariaDB funktioniert

In MariaDB INSTR() ist eine eingebaute String-Funktion, die die Position des ersten Vorkommens eines Teilstrings innerhalb eines anderen Strings zurückgibt.

INSTR() ähnelt dem LOCATE() Funktion, außer dass LOCATE() bietet die Möglichkeit, eine Startposition für die Suche anzugeben. Außerdem wird die Argumentreihenfolge zwischen diesen beiden Funktionen umgekehrt.

Syntax

Die Syntax lautet wie folgt:

INSTR(str,substr)

Wobei str ist die Zeichenfolge, substr ist der zu suchende Teilstring.

Beispiel

Hier ist ein einfaches Beispiel:

SELECT INSTR('The hot sun', 'hot');

Ergebnis:

+-----------------------------+
| INSTR('The hot sun', 'hot') |
+-----------------------------+
|                           5 |
+-----------------------------+

Groß-/Kleinschreibung wird nicht beachtet

INSTR() führt eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durch:

SELECT INSTR('The hot sun', 'HOT');

Ergebnis:

+-----------------------------+
| INSTR('The hot sun', 'HOT') |
+-----------------------------+
|                           5 |
+-----------------------------+

Mehrere Vorkommen

Wenn der Teilstring mehr als einmal vorkommt, wird nur die Position des ersten zurückgegeben:

SELECT INSTR('The hot sun is really hot', 'hot');

Ergebnis:

+-------------------------------------------+
| INSTR('The hot sun is really hot', 'hot') |
+-------------------------------------------+
|                                         5 |
+-------------------------------------------+

Teilweise Übereinstimmung

Wenn die Teilzeichenfolge Teil eines größeren Worts ist, ist es immer noch eine Übereinstimmung:

SELECT INSTR('The hottest sun', 'hot');

Ergebnis:

+---------------------------------+
| INSTR('The hottest sun', 'hot') |
+---------------------------------+
|                               5 |
+---------------------------------+

Aber wenn der String nur ein Teil des Teilstrings ist, ist es keine Übereinstimmung:

SELECT INSTR('The hot sun', 'hottest');

Ergebnis:

+---------------------------------+
| INSTR('The hot sun', 'hottest') |
+---------------------------------+
|                               0 |
+---------------------------------+

Leerzeichen

Das Leerzeichen ist immer noch ein String, also können wir Leerzeichen in den Teilstring einfügen, auch wenn es das einzige Zeichen ist:

SELECT INSTR('The hot sun', ' ');

Ergebnis:

+---------------------------+
| INSTR('The hot sun', ' ') |
+---------------------------+
|                         4 |
+---------------------------+

Leerer String

Folgendes passiert, wenn der Teilstring ein leerer String ist:

SELECT INSTR('The hot sun', '');

Ergebnis:

+--------------------------+
| INSTR('The hot sun', '') |
+--------------------------+
|                        1 |
+--------------------------+

Keine Übereinstimmung

Wenn der Teilstring nicht im String gefunden wird, INSTR() gibt 0 zurück :

SELECT INSTR('The hot sun', 'cold');

Ergebnis:

+------------------------------+
| INSTR('The hot sun', 'cold') |
+------------------------------+
|                            0 |
+------------------------------+

Null-Argumente

Bereitstellung von null für jedes der Argumente ergibt sich null :

SELECT 
    INSTR('The hot sun', null),
    INSTR(null, 'hot');

Ergebnis:

+----------------------------+--------------------+
| INSTR('The hot sun', null) | INSTR(null, 'hot') |
+----------------------------+--------------------+
|                       NULL |               NULL |
+----------------------------+--------------------+

Angabe der falschen Anzahl von Argumenten

Aufruf von INSTR() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT INSTR('hot');

Ergebnis:

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