MariaDB
 sql >> Database >  >> RDS >> MariaDB

Seleziona Tutto prima o dopo un determinato personaggio in MariaDB

In MariaDB, puoi usare SUBSTRING_INDEX() funzione per restituire tutto prima o dopo un determinato carattere (o caratteri) in una stringa.

Questa funzione accetta tre argomenti; la stringa, il delimitatore e il numero di occorrenze di tale delimitatore da utilizzare per determinare la sottostringa da restituire.

Esempi

Possiamo vedere come funziona la funzione nei seguenti esempi.

Seleziona Tutto prima

Per selezionare tutto prima di un determinato carattere, rendi il terzo argomento un valore positivo:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 2);

Risultato:

Red,Green

In questo esempio, selezioniamo tutto prima della seconda virgola. Questo viene fatto usando una virgola (, ) come delimitatore e 2 come il conteggio.

Ho usato una virgola in quell'esempio, ma potrebbe essere qualsiasi carattere o stringa:

SELECT SUBSTRING_INDEX('Red or Green or Blue', ' or ', 2);

Risultato:

Red or Green

Seleziona Tutto dopo

Usa un valore negativo per selezionare tutto dopo un determinato carattere:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', -2);

Risultato:

Green,Blue

Nota che il valore negativo significa che verrà conteggiato da destra, quindi seleziona la sottostringa a destra del delimitatore.

Quando il delimitatore non viene trovato

Se il delimitatore non viene trovato nella stringa, la stringa viene restituita per intero.

Esempio:

SELECT SUBSTRING_INDEX('Red,Green,Blue', '-', 1);

Risultato:

Red,Green,Blue

In questo caso, l'intera stringa viene restituita per intero perché abbiamo utilizzato un trattino (- ) come delimitatore ma non c'erano trattini nella stringa.

Otterremmo lo stesso risultato se la stringa fa contengono il delimitatore, ma il nostro count supera il numero di delimitatori nella stringa.

Esempio:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 10);

Risultato:

Red,Green,Blue

Maiuscole/minuscole

Il SUBSTRING_INDEX() La funzione esegue una ricerca con distinzione tra maiuscole e minuscole per il delimitatore. Cioè, il delimitatore deve essere il caso corretto prima che corrisponda.

Caso errato

Ecco un esempio in cui il caso non corrisponde:

SELECT SUBSTRING_INDEX('Red and green and blue', 'AND', 2);

Risultato:

Red and green and blue

Otteniamo l'intera stringa per intero.

Caso corretto

Ora ecco lo stesso esempio, ma dove il caso corrisponde:

SELECT SUBSTRING_INDEX('Red and green and blue', 'and', 2);

Risultato:

Red and green