Rumah  >  Artikel  >  pangkalan data  >  Fungsi MySQL manakah yang Terbaik untuk Pemilihan Panjang Rentetan: CHAR_LENGTH() atau LENGTH()?

Fungsi MySQL manakah yang Terbaik untuk Pemilihan Panjang Rentetan: CHAR_LENGTH() atau LENGTH()?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 11:23:29930semak imbas

Which MySQL Function is Best for String Length Selection: CHAR_LENGTH() or LENGTH()?

Pemilihan Panjang Rentetan MySQL

Ia adalah mungkin untuk memilih data berdasarkan panjang rentetan dalam MySQL. Satu cara ialah menggunakan fungsi string_length(), seperti yang ditunjukkan dalam:

<code class="sql">SELECT * FROM table ORDER BY string_length(column);</code>

Walau bagaimanapun, terdapat fungsi yang lebih cekap untuk tugas ini: CHAR_LENGTH(). Fungsi ini mengembalikan bilangan aksara dalam rentetan, tanpa mengira panjang aksara (cth., bait tunggal atau berbilang bait).

Fungsi LENGTH() juga boleh digunakan untuk menentukan bilangan bait yang diduduki oleh seutas tali. Walau bagaimanapun, untuk set aksara berbilang bait, CHAR_LENGTH() ialah pilihan pilihan kerana ia mengembalikan bilangan aksara berbanding bait.

Untuk menggambarkan perbezaan antara LENGTH() dan CHAR_LENGTH(), pertimbangkan contoh berikut :

SELECT LENGTH('abc'), CHAR_LENGTH('abc') FROM dual;

Untuk pengekodan aksara UTF-8, hasilnya ialah:

LENGTH: 3
CHAR_LENGTH: 3

Walau bagaimanapun, jika pengekodan aksara ditukar kepada UTF-16, hasilnya ialah:

LENGTH: 6
CHAR_LENGTH: 3

Ini kerana UTF-16 menggunakan dua bait untuk mengekod setiap aksara, manakala UTF-8 menggunakan pengekodan panjang boleh ubah (1 bait untuk aksara ASCII, 2 bait untuk aksara Unicode). Oleh itu, CHAR_LENGTH() menyediakan metrik yang lebih konsisten dan sedar aksara untuk panjang rentetan dalam MySQL.

Atas ialah kandungan terperinci Fungsi MySQL manakah yang Terbaik untuk Pemilihan Panjang Rentetan: CHAR_LENGTH() atau LENGTH()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn