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


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

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

Ответы:


492

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

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


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**
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.