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.
GO TO FULL VERSION