Mysql
 sql >> Database >  >> RDS >> Mysql

Come dividere una stringa in MySQL

Problema:

Vorresti dividere una stringa in MySQL.

Esempio:

Il nostro database ha una tabella denominata Student con i dati nelle colonne id e name .

id
1 Ann Smith
2 Mark Twain
3 Verde Brad

Recuperiamo i dati dal nome della colonna e li dividiamo in firstname e lastname .

Soluzione:

Useremo il SUBSTRING_INDEX() funzione. Ecco la domanda:

SELECT
SUBSTRING_INDEX(name,' ',1) AS firstname,
SUBSTRING_INDEX(name,' ',-1) AS lastname
FROM Student

Ecco il risultato della query:

nome cognome
Ann Fabio
Segna Due
Brad Verde

Discussione:

La funzione SUBSTRING_INDEX() accetta 3 argomenti:la stringa di origine, il delimitatore e il conteggio delle occorrenze del delimitatore.

La stringa sorgente è la stringa che vorremmo dividere.

Il delimitatore è una stringa di caratteri che è SUBSTRING_INDEX() la funzione cerca nella stringa di origine. Una volta trovato, indica il punto in cui termina la sottostringa. Il delimitatore può essere un singolo carattere, ad esempio uno spazio, ma può anche essere un modello composto da due o più caratteri. Questo modello fa distinzione tra maiuscole e minuscole; cioè, importa se i caratteri dati sono maiuscoli o minuscoli. Ricorda che il delimitatore è una stringa, quindi deve essere scritto tra virgolette ('').

L'ultimo argomento è il numero di occorrenze . Indica il numero di volte in cui il modello di delimitatore deve essere abbinato. Si noti che il conteggio delle occorrenze può essere un valore negativo. Quando è negativo, contiamo le occorrenze del delimitatore da destra. Quando il conteggio è positivo, contiamo da sinistra.

La funzione restituisce ogni carattere della stringa di origine fino a quando il delimitatore non corrisponde al numero di volte dato dal conteggio delle occorrenze.

Se eseguiamo la seguente query:

SELECT
SUBSTRING_INDEX('Ann Smith',' ',1);

l'output sarà:

Ann

Come puoi vedere, la funzione ha restituito tutti i caratteri fino a trovare il primo spazio da sinistra.

Nel nostro esempio, recuperiamo come nome dello studente tutti i caratteri fino al primo spazio da sinistra e come cognome dello studente tutti i caratteri fino al primo spazio da destra.