sql >> Database >  >> RDS >> MariaDB

Hoe INSTR() werkt in MariaDB

In MariaDB, INSTR() is een ingebouwde tekenreeksfunctie die de positie van het eerste voorkomen van een subtekenreeks binnen een andere tekenreeks retourneert.

INSTR() is vergelijkbaar met de LOCATE() functie, behalve dat LOCATE() biedt de mogelijkheid om een ​​startpositie voor de zoekopdracht op te geven. Ook is de argumentvolgorde tussen deze twee functies omgekeerd.

Syntaxis

De syntaxis gaat als volgt:

INSTR(str,substr)

Waar str is de string, substr is de substring die moet worden gevonden.

Voorbeeld

Hier is een eenvoudig voorbeeld:

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

Resultaat:

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

Hoofdlettergevoelig

INSTR() voert een hoofdletterongevoelige zoekopdracht uit:

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

Resultaat:

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

Meerdere gebeurtenissen

Als de subtekenreeks meer dan één keer voorkomt, wordt alleen de positie van de eerste geretourneerd:

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

Resultaat:

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

Gedeeltelijke overeenkomst

Als de subtekenreeks deel uitmaakt van een groter woord, is het nog steeds een overeenkomst:

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

Resultaat:

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

Maar als de string slechts een deel van de substring is, is het geen overeenkomst:

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

Resultaat:

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

Spaties

Het spatieteken is nog steeds een tekenreeks, dus we kunnen spaties in de subtekenreeks opnemen, zelfs als dit het enige teken is:

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

Resultaat:

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

Lege string

Dit is wat er gebeurt als de subtekenreeks een lege tekenreeks is:

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

Resultaat:

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

Geen overeenkomst

Als de substring niet wordt gevonden in de string, INSTR() retourneert 0 :

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

Resultaat:

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

Nullargumenten

null opgeven voor elk van de argumenten resulteert in null :

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

Resultaat:

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

Het verkeerde aantal argumenten opgeven

INSTR() . aanroepen met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten resulteert in een fout:

SELECT INSTR('hot');

Resultaat:

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

  1. MySQL-database kopiëren

  2. Hoe maak ik verbinding met een MySQL-database in Python?

  3. Veelvoorkomende fouten van DBA in MS SQL Server

  4. SQLite-JSON()