MySQL - Cách chọn dữ liệu theo độ dài chuỗi


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

Có một chức năng MySQL để làm điều này (tất nhiên thay vì string_length)?

Câu trả lời:


492

Bạn đang tìm kiếm CHAR_LENGTH()để có được số lượng ký tự trong một chuỗi.

Đối với bộ ký tự nhiều byte LENGTH()sẽ cung cấp cho bạn số byte mà chuỗi chiếm giữ, trong khi CHAR_LENGTH()sẽ trả về số lượng ký tự.


139
Trên thực tế, CHAR_LENGTH () nên là một lựa chọn tốt hơn. Đối với bộ ký tự nhiều byte, LENGTH () sẽ cung cấp cho bạn số byte mà chuỗi chiếm giữ, trong khi CHAR_LENGTH () sẽ trả về số lượng ký tự.
András Szepesházi

4
chọn LENGTH ('Ö'); kết quả 2 !! Câu trả lời của András Szepesházi là câu trả lời đúng!
fubo

Việc gửi một tham số nguyên là chính xác CHAR_LENGTH, vì nếu tôi trả về số lượng ký tự? , por ejemplo CHAR_LENGTH(12)trở lại2
DarkFenix

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

Tài liệu về hàm length (), cũng như tất cả các hàm chuỗi khác, có sẵn ở đây .



3

Hàm mà tôi sử dụng để tìm độ dài của chuỗi là length, được sử dụng như sau:

SELECT * FROM table ORDER BY length(column);

1

Tôi đã sử dụng câu này để lọc

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

bạn có thể thay đổi 10 cho số khác mà bạn muốn lọc.


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

Ví dụ nếu bạn muốn chọn từ khách hàng mục nhập với tên ngắn hơn 2 ký tự.

select * from customer where 1 **having length(name)<2**
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.