Elenco delle funzioni di stringa

Più funzioni di data e ora - solo il tipo String. Che in SQL è dato dai tipi CHAR(n) e VARCHAR(n). Ricordiamo il più popolare di loro:

Funzione Descrizione
1 LUNGHEZZA(str) Restituisce la lunghezza della stringa passata in byte
2 CHAR_LENGTH(str) Restituisce la lunghezza della stringa passata in caratteri
3 LOCATE(substr,str), Cerca una sottostringa in una stringa simile al metodo indexOf()
4 LOCATE(substr,str,pos) Cerca una sottostringa in una stringa a partire da pos
5 CONCAT(str1,str2,...) Concatena più righe
6 SUBSTR(), SUBSTRING() Restituisce una sottostringa data da un intervallo di caratteri
7 INFERIORE(str) Converte una stringa in lettere minuscole
8 SUPERIORE(str) Converte una stringa in lettere maiuscole
9 SOSTITUIRE() Sostituisce una sottostringa in una stringa
10 INCONTRO() Controlla se una stringa corrisponde a un determinato modello
undici TRIM(str) Taglia i caratteri vuoti all'inizio e alla fine di una stringa
12 LTRIM(str) Taglia i caratteri vuoti all'inizio di una stringa
13 RTRIM(str) Taglia i caratteri vuoti alla fine di una stringa
14 TO_BASE64(str) Converte una stringa in Base64
15 FROM_BASE64(str) Converte una stringa da Base64

Ho deliberatamente raggruppato le funzioni in piccoli gruppi per facilitare la comprensione di come lavorarci. Di seguito considereremo una funzione per ciascun gruppo. Puoi trovare un elenco completo delle funzioni per lavorare con le stringhe nella documentazione ufficiale .

Convertiamo la stringa

Affrontiamo prima le funzioni più semplici che convertono semplicemente una stringa in una forma leggermente diversa. Ad esempio, convertire una stringa in lettere maiuscole e minuscole. In generale, il loro comportamento è simile alle stesse funzioni nel linguaggio Java.

Quindi mi limiterò a fornire una tabella con alcuni esempi.

# Richiesta Risultato
1 SELEZIONA LUNGHEZZA ('testo') 4
2 SELEZIONA LUNGHEZZA ('Ciao') 12
3 SELEZIONA INFERIORE ('Ciao') Ciao
4 SELEZIONA MAIUSC ('Ciao') CIAO
5 SELECT SUBSTR ('Ciao', 2, 3) riv
6 SELECT SUBSTR ('Ciao, come stai?', 8) Come stai?

Le funzioni funzionano come previsto, proprio come le loro controparti del JDK.

L'unico avvertimento: nella prima riga, il risultato è 4, non 8. Il fatto è che 1 byte (codifica ASCII) viene utilizzato nella richiesta per codificare i caratteri latini. Ma se lavori con i dati del database, la lunghezza della stringa dipenderà dalle impostazioni di codifica del database . Troverai molte sorprese mentre lavori con il database :)

Azioni complesse con stringhe

Bene, diamo un'occhiata a cose più complesse quando si lavora con le stringhe. Cosa ti inventeresti...

Visualizziamo le attività dalla tabella delle attività e, se la scadenza dell'attività è già trascorsa, aggiungiamo la parola SCADUTO alla descrizione dell'attività!

Sembra interessante. Sebbene non abbiamo ancora appreso condizioni complesse, semplifichiamo un po 'il compito. Scriviamo solo una query che visualizzerà un elenco di attività passate, ma assicurati di aggiungere la parola "SCADUTO!" al titolo. .

Per fare ciò, dovremo utilizzare la funzione CONCAT:

   SELECT CONCAT( 'EXPIRED! ', name) FROM task 
   WHERE deadline < CURDATE() 

Il risultato di questa query sarà:

concat('SCADUTO! ', nome)
SCADUTO! Risolto un bug sul frontend

Raccomandazione. Se hai solo bisogno di convertire i dati in una forma leggermente diversa, allora questo può essere fatto anche a livello di codice Java. Ma se vuoi usare le funzioni di stringa lato server SQL (all'interno di WHERE), allora non puoi assolutamente farne a meno.