MySQL - Cara memilih data berdasarkan panjang string

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

Apakah ada fungsi MySQL untuk melakukan ini (tentu saja bukan string_length)?

Gal
sumber

Jawaban:

492

Anda mencari untuk CHAR_LENGTH()mendapatkan jumlah karakter dalam sebuah string.

Untuk rangkaian byte multi-byte LENGTH()akan memberi Anda jumlah byte yang menempati string, sementara CHAR_LENGTH()akan mengembalikan jumlah karakter.

hsz
sumber
139
Sebenarnya, CHAR_LENGTH () harus menjadi pilihan yang lebih baik. Untuk rangkaian karakter multi-byte LENGTH () akan memberi Anda jumlah byte yang menempati string, sementara CHAR_LENGTH () akan mengembalikan jumlah karakter.
András Szepesházi
4
pilih PANJANG ('Ö'); hasil 2 !! Jawaban András Szepesházi adalah yang benar!
fubo
Apakah benar mengirim parameter integer ke CHAR_LENGTH, karena jika saya mengembalikan jumlah karakter? , por CHAR_LENGTH(12)2
ejemplo
81
select * from table order by length(column);

Dokumentasi pada fungsi length (), serta semua fungsi string lainnya, tersedia di sini .

Kaleb Brasee
sumber
27

Setelah melihat dokumentasi MySQL untuk fungsi-fungsi string, kita juga dapat menggunakan CHAR_LENGTH()dan CHARACTER_LENGTH()juga.

Tidak ada yang hilang
sumber
3

Fungsi yang saya gunakan untuk menemukan panjang string length, digunakan sebagai berikut:

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

Saya menggunakan kalimat ini untuk memfilter

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

Anda dapat mengubah 10 untuk nomor lain yang ingin Anda filter.

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

Contoh jika Anda ingin memilih dari pelanggan entri dengan nama yang lebih pendek dari 2 karakter.

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