Può capitare, usando MySQL, di dover lavorare con la lunghezza e il peso delle stringhe a prescindere dal loro contenuto. Vediamo qualche esempio.
Lunghezza della stringa in numero di caratteri
Dovendo preparare l’impaginazione di un contenuto, mi trovo spesso a chiedermi qual’è il recordo più lungo che ho in database?
MySQL ha una serie di funzioni per lavorare sulle stringhe, in questo particolare caso ci viene incontro CHAR_LENGTH
(o CHARACTER_LENGTH
, il suo alias) che restituisce la lunghezza della stringa in numero di caratteri.
Un esempio di utilizzo
SELECT * FROM `rubrica` ORDER BY CHAR_LENGTH(`numero_di_telefono`) DESC
Lunghezza della stringa in numero di bytes
Per avere il valore della stringa, useremo LENGTH
. L’importanza che riveste questa istruzione è legata al fatto che i caratteri multibyte avranno un peso di 2 byte.
In pratica
mysql > SELECT LENGTH('testo'); -> 5 mysql > SELECT LENGTH('ª'); -> 2 mysql >
Questo significa che una stringa che contiene 3 caratteri multibyte avrà un LENGTH()
pari a 6 mentre un CHAR_LENGTH()
uguale a 3.
Lunghezza della stringa in numero di bit
Se ci serve il numero di bit, BIT_LENGTH
fa al caso nostro.
mysql > SELECT SELECT BIT_LENGTH('testo'); -> 40 mysql > SELECT BIT_LENGTH('ciao'); -> 32 mysql >
Commenti recenti