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

Apa yang Setara dengan DATALENGTH() di MySQL?

Jika Anda telah bekerja dengan SQL Server untuk waktu yang lama, Anda mungkin menemukan Datalength() fungsi. Fungsi ini mengembalikan jumlah byte yang digunakan untuk mewakili ekspresi.

Tetapi jika Anda pindah ke MySQL, Anda mungkin mencari fungsi yang melakukan hal yang sama.

Di MySQL, Length() fungsi pada dasarnya melakukan hal yang sama dengan T-SQL Datalength() fungsi tidak di SQL Server (dan Azure). MySQL Length() fungsi mengembalikan panjang string, diukur dalam byte.

Contoh

Berikut adalah beberapa contoh untuk ditunjukkan.

SQL Server

Berikut adalah contoh dasar untuk SQL Server (menggunakan T-SQL):

SELECT DATALENGTH('Cat') AS Datalength;

Hasil:

Datalength
----------
3         

MySQL

Inilah kueri yang setara di MySQL:

SELECT LENGTH('Cat') AS Length;

Hasil:

+--------+
| Length |
+--------+
|      3 |
+--------+

Keduanya Mengukur Byte

Namun yang terpenting, kedua fungsi tersebut mengukur byte , bukan karakter . Jadi jika data disimpan sebagai string Unicode, jumlah byte akan menjadi dua kali lipat jumlah karakter. Ini karena string Unicode menggunakan 2 byte per karakter.

Di bawah ini adalah contoh menjalankan kueri yang pada dasarnya sama terhadap kolom Unicode di SQL Server, lalu di MySQL.

SQL Server

SELECT DATALENGTH(ArtistName) AS DataLength
FROM Artists 
WHERE ArtistName = 'Lit';

Hasil:

DataLength
----------
6         

MySQL

SELECT LENGTH(ArtistName) AS Length
FROM Artists
WHERE ArtistName = 'Lit';

Hasil:

+--------+
| Length |
+--------+
|      6 |
+--------+

Penting untuk dicatat bahwa alasan contoh ini mengembalikan 6 adalah karena tipe data yang digunakan dalam database. Kedua contoh juga dapat mengembalikan 3 jika data tidak disimpan sebagai Unicode.

Karakter vs Byte

Dalam contoh SQL Server, jika kita menggunakan Len() sebagai gantinya, itu akan dikembalikan 3. Ini karena Len() mengembalikan jumlah karakter – bukan byte.

Demikian pula untuk MySQL, jika kita menggunakan Char_Length() fungsi, itu juga akan mengembalikan 3, karena Char_Length() mengembalikan jumlah karakter, bukan 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. Mengapa saya tidak menggunakan fungsi mysql_* di PHP?

  2. Bagaimana cara mendapatkan usia dari bidang D.O.B di MySQL?

  3. SQL UPDATE Syntax – Didaftarkan oleh DBMS

  4. Berapa panjang maksimum data yang dapat saya masukkan ke dalam kolom BLOB di MySQL?

  5. Bagaimana menangani kesalahan untuk entri duplikat?