Rumah > Artikel > pangkalan data > Bagaimanakah anda mengisih data mengikut panjang rentetan dalam MySQL?
Percubaan Pertanyaan Awal:
Pertimbangkan pertanyaan berikut, yang cuba mengisih data mengikut panjang rentetan:
<code class="sql">SELECT * FROM table ORDER BY string_length(column);</code>
Walau bagaimanapun, pertanyaan ini menghasilkan ralat. Walaupun terdapat fungsi string_length dalam MySQL, ia tidak boleh digunakan untuk mengisih data.
Penyelesaian: Menggunakan CHAR_LENGTH()
Untuk mengisih data mengikut panjang rentetan, anda perlu menggunakan fungsi CHAR_LENGTH(). Tidak seperti string_length, CHAR_LENGTH() mengembalikan bilangan aksara dalam rentetan, bukan bilangan bait.
Pertanyaan Kemas Kini:
<code class="sql">SELECT * FROM table ORDER BY CHAR_LENGTH(column);</code>
Perbezaan antara LENGTH() dan CHAR_LENGTH()
Untuk set aksara berbilang bait (cth., UTF-8), LENGTH() akan mengembalikan bilangan bait dalam rentetan, manakala CHAR_LENGTH() akan mengembalikan bilangan aksara. Oleh itu, untuk set aksara berbilang bait, anda harus menggunakan CHAR_LENGTH() untuk pengiraan panjang rentetan yang tepat.
Atas ialah kandungan terperinci Bagaimanakah anda mengisih data mengikut panjang rentetan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!