MySQL - Auswahl von Daten nach Zeichenfolgenlänge

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

Gibt es dafür eine MySQL-Funktion (natürlich statt string_length)?

Gal
quelle

Antworten:

492

Sie CHAR_LENGTH()möchten die Anzahl der Zeichen in einer Zeichenfolge ermitteln.

Bei Mehrbyte-Zeichensätzen erhalten LENGTH()Sie die Anzahl der Bytes, die die Zeichenfolge belegt, während CHAR_LENGTH()die Anzahl der Zeichen zurückgegeben wird.

hsz
quelle
139
Eigentlich sollte CHAR_LENGTH () eine bessere Wahl sein. Bei Mehrbyte-Zeichensätzen gibt LENGTH () die Anzahl der Bytes an, die der String belegt, während CHAR_LENGTH () die Anzahl der Zeichen zurückgibt.
András Szepesházi
4
Wählen Sie LÄNGE ('Ö'). Ergebnisse 2 !! Die Antwort von András Szepesházi ist die richtige!
Fubo
Es ist richtig, einen Integer-Parameter an zu senden CHAR_LENGTH, denn wenn ich die Anzahl der Zeichen zurückgebe? , por ejemplo CHAR_LENGTH(12)Rückkehr2
DarkFenix
81
select * from table order by length(column);

Eine Dokumentation zur Funktion length () sowie zu allen anderen Zeichenfolgenfunktionen finden Sie hier .

Kaleb Brasee
quelle
27

Wenn wir uns die MySQL-Dokumentation für die Zeichenfolgenfunktionen ansehen , können wir auch CHAR_LENGTH()und verwenden CHARACTER_LENGTH().

NeverHopeless
quelle
3

Die Funktion, mit der ich die Länge der Zeichenfolge finde length, wird wie folgt verwendet:

SELECT * FROM table ORDER BY length(column);
Rito
quelle
1

Ich habe diese Sätze zum Filtern verwendet

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

Sie können 10 für eine andere Nummer ändern, die Sie filtern möchten.

Jesús Sánchez
quelle
-2
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

Beispiel, wenn Sie vom Kunden einen Eintrag mit einem Namen auswählen möchten, der kürzer als 2 Zeichen ist.

select * from customer where 1 **having length(name)<2**
Levi Maier
quelle