Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa itu CHAR_LENGTH() di MySQL?

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menu pohon build PHP / MySQL

  2. MySQL pilih satu kolom DISTINCT, dengan kolom lain yang sesuai

  3. Menggunakan SELECT INTO OUTFILE di MySQL

  4. Melakukan perhitungan di MySQL vs PHP

  5. Bisakah saya membuat parameter nama tabel dalam pernyataan yang disiapkan?