Di MySQL, OCTET_LENGTH() fungsi mengembalikan panjang string, diukur dalam byte.
Fungsi ini sebenarnya merupakan sinonim dari LENGTH() .
Sintaks
Sintaks dasarnya seperti ini:
OCTET_LENGTH(str)
Dimana str adalah string yang Anda ingin panjangnya dikembalikan.
Contoh
SELECT OCTET_LENGTH('Cat');
Hasil:
+---------------------+
| OCTET_LENGTH('Cat') |
+---------------------+
| 3 |
+---------------------+
Ini adalah hasil yang sama yang kita dapatkan jika kita menggunakan CHAR_LENGTH() fungsi. Namun, OCTET_LENGTH() fungsi dapat mengembalikan hasil yang berbeda, bergantung pada tipe datanya.
Tipe Data
Saat Anda membuat kueri database, OCTET_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 CHAR_LENGTH(_utf8 '€'), OCTET_LENGTH(_utf8 '€');
Hasil:
+--------------------------+---------------------------+ | CHAR_LENGTH(_utf8 '€') | OCTET_LENGTH(_utf8 '€') | +--------------------------+---------------------------+ | 1 | 3 | +--------------------------+---------------------------+
Dalam hal ini, panjang karakter adalah 1, tetapi panjang oktet adalah 3 byte.
Dalam contoh berikut, kami meminta database. Dalam hal ini, ArtistName kolom menggunakan varchar(255) tipe data:
SELECT OCTET_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Jadi hasilnya seperti ini:
+--------------------------+ | OCTET_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 OCTET_LENGTH(ArtistName) ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) CHARSET ucs2;
Sekarang jika kita menanyakannya lagi:
SELECT OCTET_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
Hasil:
+--------------------------+ | OCTET_LENGTH(ArtistName) | +--------------------------+ | 6 | +--------------------------+
Trailing Blank
OCTET_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('Cat ');
Hasil:
+----------------+
| LENGTH('Cat ') |
+----------------+
| 4 |
+----------------+
Kosong Utama
Kami mendapatkan hasil yang sama dengan kosong di depan (misalnya spasi di awal string):
SELECT LENGTH(' Cat');
Hasil:
+----------------+
| LENGTH(' Cat') |
+----------------+
| 4 |
+----------------+
Kecuali tentu saja, kami menggunakan fungsi seperti TRIM() , RTRIM() , atau LTRIM() untuk memangkas spasi.
Contoh:
SELECT LENGTH(RTRIM('Cat '));
Hasil:
+-----------------------+
| LENGTH(RTRIM('Cat ')) |
+-----------------------+
| 3 |
+-----------------------+
Contoh Lainnya
Berikut adalah beberapa contoh berbagai string:
SELECT
OCTET_LENGTH('Quiet Riot') AS 'Result 1',
OCTET_LENGTH('') AS 'Result 2',
OCTET_LENGTH('1234 7') AS 'Result 3',
OCTET_LENGTH(' ') AS 'Result 4',
OCTET_LENGTH(TRIM(' ')) AS 'Result 5';
Hasil:
+----------+----------+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | Result 4 | Result 5 | +----------+----------+----------+----------+----------+ | 10 | 0 | 7 | 3 | 0 | +----------+----------+----------+----------+----------+
Perhatikan bahwa hasil 4 dan 5 berbeda karena saya menggunakan TRIM() berfungsi untuk memangkas spasi dari hasil 5. Mengingat string hanya terdiri dari spasi, maka panjang string yang dipangkas adalah 0 .
Transact-SQL (untuk SQL Server, Azure) memiliki fungsi yang mirip dengan LENGTH() MySQL dan OCTET_LENGTH() fungsi, tetapi dalam T-SQL disebut DATALENGTH() .