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!