MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Bagaimana LENGTH() Bekerja di MariaDB

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'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Manajemen Kunci SSL dan Enkripsi Data MySQL dalam Transit

  2. 3 Cara Mendapatkan Nama Hari dari Tanggal di MariaDB

  3. Bagaimana TIMEDIFF() Bekerja di MariaDB

  4. Apa itu MariaDB ColumnStore?

  5. Bagaimana Operator BINARY Bekerja di MariaDB