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

Funktionsweise der POSITION()-Funktion in MySQL

In MySQL die POSITION() Die Funktion gibt die Position des ersten Vorkommens eines Teilstrings innerhalb des Strings zurück.

Diese Funktion ist eigentlich ein Synonym für LOCATE() , aber mit einer etwas anderen Syntax. Das LOCATE() Die Funktion hat auch zusätzliche Funktionalität, da sie es Ihnen ermöglicht, eine Startposition für Ihre Suche zu definieren.

Syntax

Die grundlegende Syntax lautet wie folgt:

POSITION(substr IN str)

Wobei substr ist der Teilstring und str ist die Saite.

Beispiel 1 – Grundlegende Verwendung

SELECT POSITION('Cat' IN 'The Cat') Result;

Ergebnis:

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

Beispiel 2 – Groß-/Kleinschreibung

Die POSITION() Die Funktion ist Multibyte-sicher und unterscheidet nur dann zwischen Groß- und Kleinschreibung, wenn mindestens ein Argument eine binäre Zeichenfolge ist.

Daher wird im folgenden Beispiel die Groß-/Kleinschreibung nicht beachtet:

SELECT POSITION('Cat' IN 'The cat') Result;

Ergebnis:

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

Beispiel 3 – Keine Übereinstimmung

Die Funktion gibt 0 zurück wenn der Teilstring nicht innerhalb des Strings gefunden wird:

SELECT POSITION('Dog' IN 'The cat') Result;

Ergebnis:

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

Beispiel 4 – Eingebettete Teilstrings

Seien Sie vorsichtig bei der Auswahl der Teilzeichenfolge. Wenn es Teil eines anderen Wortes ist, könnten Sie ein falsches Positiv erhalten:

SELECT POSITION('Cat' IN 'Good Catch!') Result;

Ergebnis:

+--------+
| Result |
+--------+
|      6 |
+--------+

Wenn Sie nur nach Katze suchen , das Tier, wäre dies ein Fehlalarm.

Beispiel 5 – Nur erstes Vorkommen

Denken Sie daran, dass diese Funktion nur die Position des ersten zurückgibt Vorkommen des Teilstrings. Alle nachfolgenden Vorkommen werden ignoriert:

SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;

Ergebnis:

+--------+
| Result |
+--------+
|      4 |
+--------+

Beispiel 6 – NULL-Argumente

Wenn eines der Argumente NULL ist , ist das Ergebnis NULL :

SELECT 
  POSITION('Cat' IN NULL) 'Result 1',
  POSITION(NULL IN 'The Cat') 'Result 2';

Ergebnis:

+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|     NULL |     NULL |
+----------+----------+

Wie bereits erwähnt, können Sie auch LOCATE() verwenden Funktion, mit der Sie eine Startposition für Ihre Suche definieren können.