MySQL - Как выбрать данные по длине строки

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

Есть ли функция MySQL для этого (конечно, вместо string_length)?

гал
источник

Ответы:

492

Вы ищете, CHAR_LENGTH()чтобы получить количество символов в строке.

Для многобайтовых кодировок LENGTH()вам будет дано количество байтов, которое занимает строка, а CHAR_LENGTH()будет возвращено количество символов.

HSZ
источник
139
На самом деле, CHAR_LENGTH () должен быть лучшим выбором. Для многобайтовых кодировок LENGTH () даст вам количество байтов, которое занимает строка, а CHAR_LENGTH () вернет количество символов.
Андраш Шепешази
4
выберите ДЛИНА ('Ö'); результаты 2 !! Ответ Андраса Шепешази является правильным!
Fubo
Это правильно, чтобы отправить целочисленный параметр CHAR_LENGTH, так как, если я верну количество символов? CHAR_LENGTH(12)возвращение через ejemplo2
DarkFenix
81
select * from table order by length(column);

Документация по функции length (), а также всем другим строковым функциям доступна здесь .

Калеб Бразе
источник
3

Функция, которую я использую, чтобы найти длину строки length, используется следующим образом:

SELECT * FROM table ORDER BY length(column);
Рито
источник
1

Я использовал эти предложения для фильтрации

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

Вы можете изменить 10 на другой номер, который вы хотите отфильтровать.

Хесус Санчес
источник
-2
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

Пример, если вы хотите выбрать из клиента записи с именем короче, чем 2 символа.

select * from customer where 1 **having length(name)<2**
Леви Майер
источник