Di MariaDB, LENGTH()
adalah fungsi string bawaan yang mengembalikan panjang argumen string yang diberikan.
Saat dalam mode default, panjang string diukur dalam byte. Tetapi ketika dalam mode Oracle, itu diukur dalam karakter.
Sintaks
Sintaksnya seperti ini:
LENGTH(str)
Dimana str
adalah string yang panjangnya akan dikembalikan.
Contoh
Berikut ini contoh dasarnya:
SELECT LENGTH('café');
Hasil:
+-----------------+ | LENGTH('café') | +-----------------+ | 5 | +-----------------+
Dalam hal ini, panjang string adalah empat karakter, tetapi LENGTH()
mengembalikan 5
.
Ini karena karakter terakhir menggunakan dua byte, dan saya menggunakan mode SQL default (sql_mode=DEFAULT
saya ). Saat dalam mode SQL default, LENGTH()
mengembalikan jumlah byte.
Mode Oracle
Beralih ke mode Oracle menghasilkan LENGTH()
hanya mengembalikan jumlah karakter dalam string (berlawanan dengan jumlah byte).
Mari kita alihkan sesi kita ke mode Oracle:
SET SESSION sql_mode='ORACLE';
Dan sekarang mari kita jalankan LENGTH()
sebelumnya contoh lagi:
SELECT LENGTH('café');
Hasil:
+-----------------+ | LENGTH('café') | +-----------------+ | 4 | +-----------------+
Kali ini mengembalikan jumlah karakter (4) bukannya jumlah byte (5).
Saat dalam mode Oracle, LENGTH()
mengembalikan hasil yang sama seperti CHAR_LENGTH()
dan sinonimnya, CHARACTER_LENGTH()
.
Perbandingan dengan CHAR_LENGTH()
dan BIT_LENGTH()
Mari beralih kembali ke mode default:
SET SESSION sql_mode=DEFAULT;
Berikut perbandingan singkat antara LENGTH()
ketika dalam mode default, CHAR_LENGTH()
dan BIT_LENGTH()
yang mengembalikan jumlah bit dalam string:
SELECT
LENGTH('อ'),
CHAR_LENGTH('อ'),
BIT_LENGTH('อ');
Hasil:
+---------------+--------------------+-------------------+ | LENGTH('อ') | CHAR_LENGTH('อ') | BIT_LENGTH('อ') | +---------------+--------------------+-------------------+ | 3 | 1 | 24 | +---------------+--------------------+-------------------+
Karakter Thailand ini (อ
) menggunakan 3 byte, dan karenanya LENGTH()
mengembalikan 3
.
CHAR_LENGTH()
mengembalikan 1
, karena masih satu karakter, dan BIT_LENGTH()
mengembalikan jumlah bit (24
).
Sekali lagi, jika kita berada dalam mode Oracle, LENGTH()
akan mengembalikan sama dengan CHAR_LENGTH()
.
Non-String
Jika argumennya bukan string, itu akan diubah menjadi string.
Berikut contoh lain yang menggunakan angka:
SELECT LENGTH(1234);
Hasil:
+--------------+ | LENGTH(1234) | +--------------+ | 4 | +--------------+
Argumen Null
Melewati null
mengembalikan null
:
SELECT LENGTH(null);
Hasil:
+--------------+ | LENGTH(null) | +--------------+ | NULL | +--------------+
Argumen Tidak Ada
Memanggil LENGTH()
tanpa meneruskan argumen menghasilkan kesalahan:
SELECT LENGTH();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'LENGTH'