sql >> Databáze >  >> RDS >> Mysql

Co je ekvivalent DATALENGTH() v MySQL?

Pokud jste se serverem SQL pracovali jakkoli dlouho, možná jste narazili na Datalength() funkce. Tato funkce vrací počet bajtů použitých k reprezentaci výrazu.

Ale pokud jste přešli na MySQL, možná hledáte funkci, která dělá totéž.

V MySQL je to Length() Funkce dělá v podstatě totéž, co T-SQL Datalength() funkce funguje na serveru SQL Server (a Azure). Length() MySQL funkce vrací délku řetězce měřenou v bajtech.

Příklady

Zde je několik příkladů k demonstraci.

SQL Server

Zde je základní příklad pro SQL Server (pomocí T-SQL):

SELECT DATALENGTH('Cat') AS Datalength;

Výsledek:

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

MySQL

Zde je ekvivalentní dotaz v MySQL:

SELECT LENGTH('Cat') AS Length;

Výsledek:

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

Oba bajty měření

Ale co je nejdůležitější, obě funkce měří bajty , nikoli znaky . Pokud jsou tedy data uložena jako řetězec Unicode, počet bajtů bude dvojnásobkem počtu znaků. Důvodem je, že řetězce Unicode používají 2 bajty na znaky.

Níže je uveden příklad spuštění v podstatě stejného dotazu proti sloupci Unicode v SQL Server a poté v MySQL.

SQL Server

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

Výsledek:

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

MySQL

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

Výsledek:

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

Je důležité si uvědomit, že důvodem, proč tyto příklady vrací 6, je datový typ použitý v databázi. Oba příklady by také mohly vrátit 3, pokud data nebyla uložena jako Unicode.

Znaky vs. bajty

V příkladu SQL Server, pokud bychom použili Len() místo toho by vrátila 3. Důvodem je Len() vrátí počet znaků – nikoli bajtů.

Podobně pro MySQL, pokud bychom použili Char_Length() funkce, také by vrátila 3, protože Char_Length() vrátí počet znaků místo bajtů.


  1. Vytvořte vztah v SQL

  2. Cloud9 postgres

  3. Výběr a úprava vertikálních bloků v SQL Server Management Studio (SSMS) - SQL Server / Výukový program TSQL, část 9

  4. Oracle:PŘI AKTUALIZACI DUPLIKÁTNÍHO KLÍČE