Salah satu dari banyak fungsi di MySQL adalah LENGTH()
fungsi, yang mengembalikan panjang string, diukur dalam byte.
Contoh:
SELECT LENGTH('Lit');
Hasil:
+---------------+ | LENGTH('Lit') | +---------------+ | 3 | +---------------+
Ini adalah contoh sederhana dan hasilnya sama seperti jika kita menggunakan CHAR_LENGTH()
fungsi. Namun, LENGTH()
fungsi dapat mengembalikan hasil yang berbeda, bergantung pada tipe datanya.
Tipe Data
Saat Anda membuat kueri database, LENGTH()
fungsi dapat mengembalikan hasil yang berbeda, tergantung pada tipe data. String Unicode mengembalikan dua kali lipat jumlah byte. String UTF-8 dapat bervariasi.
Berikut ini contoh penggunaan UTF-8:
SELECT LENGTH(_utf8 '€');
Hasil:
+---------------------+ | LENGTH(_utf8 '€') | +---------------------+ | 3 | +---------------------+
Dalam hal ini, tanda Euro menggunakan 3 byte.
Dalam contoh berikut, kami meminta database. Dalam hal ini, ArtistName
kolom menggunakan varchar(255) tipe data:
SELECT LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Jadi hasilnya seperti ini:
+--------------------+ | LENGTH(ArtistName) | +--------------------+ | 3 | +--------------------+
Namun, jika kita mengubah kolom menjadi ucs2
, setiap karakter akan diwakili oleh kode Unicode 2 byte, sehingga hasilnya akan berbeda.
Untuk mendemonstrasikannya, kita dapat mengubah tabel seperti ini:
SELECT LENGTH(ArtistName) ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) CHARSET ucs2;
Sekarang jika kita menanyakannya lagi:
SELECT LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Hasil:
+--------------------+ | LENGTH(ArtistName) | +--------------------+ | 6 | +--------------------+
Trailing Blank
LENGTH()
fungsi menghitung trailing blank (seperti spasi di akhir string). Jadi jika kita menambahkan spasi di akhir contoh pertama, kita mendapatkan hasil sebagai berikut:
SELECT LENGTH('Lit');
Hasil:
+----------------+ | LENGTH('Lit ') | +----------------+ | 4 | +----------------+
Kosong Utama
Kami mendapatkan hasil yang sama dengan kosong di depan (misalnya spasi di awal string):
SELECT LENGTH('Lit');
Hasil:
+----------------+ | LENGTH('Lit ') | +----------------+ | 4 | +----------------+
Transact-SQL (untuk SQL Server, Azure) memiliki fungsi yang serupa, tetapi dalam T-SQL disebut DATALENGTH()
.