Funzioni di stringa MySQL spiegate: SUBSTRING, LEFT, RIGHT & SUBSTRING_INDEX con esempi pratici

1. Nozioni di base sulla manipolazione delle stringhe in MySQL

Nel gestione dei database, la manipolazione delle stringhe è una competenza essenziale per elaborare i dati e ottimizzare i risultati delle query. MySQL fornisce funzioni pratiche per estrarre e manipolare le stringhe. In questo articolo ci concentriamo principalmente sulla importante funzione SUBSTRING, introduciamo altri metodi di manipolazione delle stringhe e spieghiamo esempi pratici d’uso.

2. Estrazione di stringhe di base in MySQL – La funzione SUBSTRING

La funzione SUBSTRING in MySQL è una delle funzioni più comunemente usate per estrarre una porzione specificata di una stringa.

Sintassi di base della funzione SUBSTRING

SUBSTRING(string, start_position, length)
  • string : La stringa da cui estrarre.
  • start_position : La posizione di partenza per l’estrazione (la prima posizione del carattere è 1).
  • length : Il numero di caratteri da estrarre (se omesso, l’estrazione continua dalla posizione di partenza fino alla fine della stringa).

Esempio: Uso di base

SELECT SUBSTRING('Hello World', 2, 5);

In questa query, vengono estratti cinque caratteri a partire dal secondo carattere della stringa “Hello World”, ottenendo “ello “.

Utilizzo di valori negativi con SUBSTRING

Specificando un valore negativo per la posizione di partenza, è possibile contare dalla fine della stringa ed estrarre i caratteri.

SELECT SUBSTRING('abcdefg', -3, 2);

Questa query restituisce “ef”, che corrisponde al terzo e quarto carattere contati dalla fine.

3. Estrarre stringhe con le funzioni LEFT e RIGHT

Invece di utilizzare la funzione SUBSTRING, è possibile usare anche le funzioni LEFT e RIGHT per recuperare un numero specificato di caratteri dall’inizio o dalla fine di una stringa.

Funzione LEFT

La funzione LEFT estrae un numero specificato di caratteri dal lato sinistro di una stringa.

SELECT LEFT('abcdefg', 3);

Questa query restituisce “abc”.

Funzione RIGHT

Al contrario, la funzione RIGHT recupera un numero specificato di caratteri dal lato destro di una stringa.

SELECT RIGHT('abcdefg', 3);

Questa query restituisce “efg”. Queste funzioni sono particolarmente utili quando è necessario estrarre un numero fisso di caratteri sia dall’inizio sia dalla fine di una stringa.

4. Suddivisione di stringhe con la funzione SUBSTRING_INDEX

La funzione SUBSTRING_INDEX viene utilizzata per suddividere una stringa in base a un delimitatore specificato e recuperare una sottostringa specifica. È particolarmente utile per dati CSV o campi contenenti valori concatenati.

Sintassi di base della funzione SUBSTRING_INDEX

SUBSTRING_INDEX(string, delimiter, N)
  • string : La stringa di destinazione da elaborare.
  • delimiter : Il carattere usato per suddividere la stringa (ad esempio, una virgola).
  • N : Il numero di delimitatori da considerare. Un valore positivo conta dall’inizio, e un valore negativo conta dalla fine.

Esempio: Utilizzo

SELECT SUBSTRING_INDEX('apple,orange,banana', ',', 2);

In questa query, la stringa “apple,orange,banana” viene suddivisa per virgole, e i primi due elementi “apple,orange” vengono recuperati.

5. Applicazioni pratiche: estrazione di stringhe nelle operazioni di database

La manipolazione delle stringhe è estremamente utile nella gestione dei database nel mondo reale. Ecco diversi esempi pratici.

Estrarre una parte del nome di un prodotto

La query seguente cerca i dati in cui il nome del prodotto termina con “Large”.

SELECT * FROM products WHERE SUBSTRING(name, -5, 5) = 'Large';

In questo modo, è possibile specificare la parte finale dei dati ed estrarre i record che corrispondono a condizioni specifiche.

Estrarre dati numerici per il calcolo

Questo esempio estrae una parte di un campo numerico e la utilizza in un calcolo.

SELECT name, price, SUBSTRING(price, -2, 2) * 5 AS total FROM products;

In questa query, le ultime due cifre del prezzo del prodotto vengono estratte e moltiplicate per 5 per visualizzare il risultato come “total”.

6. Suggerimenti per l’ottimizzazione delle prestazioni

Sebbene la manipolazione delle stringhe sia comoda, può influire sulle prestazioni nei database su larga scala. Di seguito sono riportati diversi suggerimenti per migliorare le prestazioni.

Utilizzare gli indici in modo efficace

Quando si cerca una parte di una stringa, gli indici configurati correttamente possono migliorare notevolmente la velocità delle query. Ad esempio, combinando la clausola LIKE con gli indici, le query che cercano dall’inizio del modello, come LIKE 'abc%', sono ottimali. Al contrario, i modelli come LIKE '%abc' che eseguono una corrispondenza di suffisso non possono utilizzare gli indici in modo efficace e possono causare un degrado delle prestazioni.

Operazioni su stringhe in grandi insiemi di dati

Se esegui frequentemente manipolazioni di stringhe su tabelle di grandi dimensioni, considera di elaborare le trasformazioni delle stringhe a livello dell’applicazione. Quando l’elaborazione lato database diventa pesante, distribuire il carico di lavoro all’applicazione può aiutare a ridurre il carico del sistema.

7. Conclusione

La manipolazione delle stringhe in MySQL è uno strumento potente per l’estrazione dei dati e la generazione di report. Utilizzando in modo efficace funzioni come SUBSTRING, LEFT e RIGHT, è possibile recuperare facilmente le informazioni necessarie. Per ottimizzare le prestazioni, è importante configurare indici appropriati e progettare attentamente l’approccio di elaborazione.

Padroneggiando queste tecniche, potrai migliorare ulteriormente le tue competenze nella manipolazione delle stringhe MySQL. Come prossimo passo, consigliamo di approfondire le espressioni regolari e altre tecniche avanzate di elaborazione delle stringhe.