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)?

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.


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 .



3

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

SELECT * FROM table ORDER BY length(column);

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.


-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**
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.