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

Wie POSITION() in MariaDB funktioniert

In MariaDB, POSITION() ist eine integrierte Zeichenfolgenfunktion, die die Position des ersten Vorkommens einer Teilzeichenfolge innerhalb einer anderen Zeichenfolge zurückgibt. Es ist Teil von ODBC 3.0.

POSITION(substr IN str) ist ein Synonym für LOCATE(substr,str) .

POSITION() ähnelt auch dem INSTR() Funktion, außer dass POSITION() verwendet den IN Syntax, und dass die Argumentreihenfolge zwischen diesen beiden Funktionen umgekehrt ist.

Syntax

Die Syntax lautet wie folgt:

POSITION(substr IN str) 

Wobei str der String ist und substr ist die Teilzeichenfolge, für die die Position von zurückgegeben werden soll.

Beispiel

Hier ist ein einfaches Beispiel:

SELECT POSITION('cute' IN 'My cute dog'); 

Ergebnis:

+-----------------------------------+| POSITION('süß' IN 'Mein süßer Hund') |+-----------------------------------+ | 4 |+-----------------------------------+

Groß-/Kleinschreibung

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

SELECT POSITION('CUTE' IN 'My cute dog'); 

Ergebnis:

+-----------------------------------+| POSITION('SÜß' IN 'Mein süßer Hund') |+-----------------------------------+ | 4 |+-----------------------------------+

Mehrere Vorkommen

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

SELECT POSITION('cute' IN 'My cute dog is SOOOO cute!'); 

Ergebnis:

+---------------------------------------------- ----+| POSITION('süß' IN 'Mein süßer Hund ist SOOOO süß!') |+------------------------------- ------------------+| 4 |+------------------------------------------------------------ ---+

Teilweise Übereinstimmung

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

SELECT POSITION('dog' IN 'My doggy is SOOO cute!'); 

Ergebnis:

+---------------------------------------------+ | POSITION('Hund' IN 'Mein Hündchen ist SOOO süß!') |+---------------------------------------------- -------------+| 4 |+---------------------------------------------+

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

SELECT POSITION('doggy' IN 'My dog is SOOO cute!'); 

Ergebnis:

+---------------------------------------------+ | POSITION('doggy' IN 'Mein Hund ist SOOO süß!') |+---------------------------------------------- -------------+| 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 POSITION(' ' IN 'My dog'); 

Ergebnis:

+-----------------------------------+| POSITION(' ' IN 'Mein Hund') |+---------------------+| 3 |+-----------------------------------+

Leerer String

Folgendes passiert, wenn der Teilstring ein leerer String ist:

SELECT POSITION('' IN 'My dog'); 

Ergebnis:

+---------------------+| POSITION('' IN 'Mein Hund') |+---------------------+| 1 |+---------------------+

Keine Übereinstimmung

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

SELECT position('cat' IN 'My dog'); 

Ergebnis:

+-------------------------------------+| position('Katze' IN 'Mein Hund') |+------------------------------------+| 0 |+------------------------------------+

Null-Argumente

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

SELECT 
    POSITION(null IN 'My dog'),
    POSITION('dog' IN null); 

Ergebnis:

+------------------------------------+---------------- --------+| POSITION(null IN 'Mein Hund') | POSITION('Hund' IN null) |+------------------------------------+----------- --------------+| NULL | NULL |+------------------------------------+----------------- -------+

Angabe der falschen Anzahl von Argumenten

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

SELECT POSITION('dog'); 

Ergebnis:

ERROR 1064 (42000):Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, auf die richtige Syntax, um sie in der Nähe von ')' in Zeile 1 zu verwenden