Di MySQL, CHAR_LENGTH()
fungsi mengembalikan panjang string, diukur dalam karakter. MySQL juga memiliki CHARACTER_LENGTH()
, yang merupakan sinonim untuk CHAR_LENGTH()
.
Ini contohnya:
SELECT CHAR_LENGTH('Lit');
Dan inilah hasilnya:
+--------------------+ | CHAR_LENGTH('Lit') | +--------------------+ | 3 | +--------------------+
Trailing Blank
Perhatikan bahwa CHAR_LENGTH()
menyertakan trailing blank (misalnya spasi di akhir string) dalam perhitungannya.
Jadi jika kita menambahkan spasi di akhir contoh sebelumnya:
SELECT CHAR_LENGTH('Lit ');
Ini hasilnya:
+---------------------+ | CHAR_LENGTH('Lit ') | +---------------------+ | 4 | +---------------------+
Tetapi kita selalu dapat menghapus spasi tambahan itu dengan menambahkan TRIM()
fungsi ke dalam campuran:
SELECT CHAR_LENGTH(TRIM('Lit '));
Ini hasilnya:
+---------------------------+ | CHAR_LENGTH(TRIM('Lit ')) | +---------------------------+ | 3 | +---------------------------+
Kosong Utama
Ini hal yang sama dengan kosong di depan. Jadi jika kita menambahkan spasi ke start dari string sebagai gantinya:
SELECT CHAR_LENGTH(' Lit');
Kami mendapatkan hasil yang sama:
+---------------------+ | CHAR_LENGTH('Lit ') | +---------------------+ | 4 | +---------------------+
Tipe Data
Tidak masalah tipe data apa string disimpan, itu akan tetap mengembalikan hasil yang sama. Ini berbeda dengan LENGTH()
fungsi, yang akan mengembalikan dua kali lipat jumlah karakter jika data disimpan sebagai string Unicode.
Pada contoh berikut, kolom ArtistName menggunakan varchar(255) :
SELECT CHAR_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Ini hasilnya:
+-------------------------+ | CHAR_LENGTH(ArtistName) | +-------------------------+ | 3 | +-------------------------+
Dan jika kita memodifikasi ArtistName
kolom untuk menggunakan Unicode:
ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) unicode;
Dan jalankan kueri yang sama lagi:
SELECT CHAR_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Kami masih mendapatkan hasil yang sama:
+-------------------------+ | CHAR_LENGTH(ArtistName) | +-------------------------+ | 3 | +-------------------------+
Namun, jika kita telah menggunakan LENGTH()
fungsi, hasilnya akan menjadi 6. Ini karena string Unicode menyimpan 2 byte per karakter, dan LENGTH()
fungsi mengembalikan panjang yang diukur dalam byte.