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 >