MySQL - Come selezionare i dati per lunghezza della stringa


302
SELECT * FROM table ORDER BY string_length(column);

Esiste una funzione MySQL per farlo (ovviamente anziché string_length)?

Risposte:


492

Stai cercando CHAR_LENGTH()di ottenere il numero di caratteri in una stringa.

Per i set di caratteri multibyte LENGTH()verrà visualizzato il numero di byte occupati dalla stringa, mentre CHAR_LENGTH()verrà restituito il numero di caratteri.


139
In realtà, CHAR_LENGTH () dovrebbe essere una scelta migliore. Per i set di caratteri multibyte LENGTH () fornirà il numero di byte occupati dalla stringa, mentre CHAR_LENGTH () restituirà il numero di caratteri.
András Szepesházi,

4
seleziona LENGTH ('Ö'); risultati 2 !! La risposta di András Szepesházi è quella corretta!
fubo,

È corretto inviare un parametro intero a CHAR_LENGTH, poiché se restituisco il numero di caratteri? , per ejemplo CHAR_LENGTH(12)return2
DarkFenix

81
select * from table order by length(column);

La documentazione sulla funzione length (), così come tutte le altre funzioni di stringa, è disponibile qui .



3

La funzione che uso per trovare la lunghezza della stringa è length, usata come segue:

SELECT * FROM table ORDER BY length(column);

1

Ho usato queste frasi per filtrare

SELECT table.field1, table.field2 FROM table WHERE length(field) > 10;

puoi cambiare 10 per l'altro numero che vuoi filtrare.


-2
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

Esempio se si desidera selezionare dal cliente la voce con un nome più breve di 2 caratteri.

select * from customer where 1 **having length(name)<2**
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.