Mysql
 sql >> база данни >  >> RDS >> Mysql

Какъв е еквивалентът на DATALENGTH() в MySQL?

Ако сте работили със SQL Server от определен период от време, може да сте срещнали Datalength() функция. Тази функция връща броя на байтовете, използвани за представяне на израз.

Но ако сте се преместили в MySQL, може да търсите функция, която прави същото.

В MySQL, Length() функцията прави основно същото нещо, което T-SQL Datalength() функцията прави в SQL Server (и Azure). Length() на MySQL функцията връща дължината на низ, измерена в байтове.

Примери

Ето няколко примера за демонстрация.

SQL сървър

Ето основен пример за SQL Server (с помощта на T-SQL):

ИЗБЕРЕТЕ DATALENGTH('Cat') КАТО дължина на данните;

Резултат:

Дължина на данните----------3 

MySQL

Ето еквивалентната заявка в MySQL:

SELECT LENGTH('Cat') КАТО дължина;

Резултат:

<пред>+--------+| Дължина |+--------+| 3 |+-------+

И двата измервателни байта

Но най-важното е, че и двете функции измерват байтове , а не знаци . Така че, ако данните се съхраняват като Unicode низ, броят на байтовете ще бъде удвоен от броя на знаците. Това е така, защото Unicode низовете използват 2 байта на символ.

По-долу е даден пример за изпълнение на по същество същата заявка срещу колона Unicode в SQL Server, след това в MySQL.

SQL сървър

ИЗБЕРЕТЕ DATALENGTH(ArtistName) КАТО DataLengthFROM Artists WHERE ArtistName ='Lit';

Резултат:

Дължина на данните----------6 

MySQL

ИЗБЕРЕТЕ ДЪЛЖИНА(Име на изпълнител) КАТО ДължинаFROM ArtistsWHERE ArtistName ='Lit';

Резултат:

<пред>+--------+| Дължина |+--------+| 6 |+-------+

Важно е да се отбележи, че причината тези примери да връщат 6 е ​​поради типа данни, използвани в базата данни. И двата примера могат също да върнат 3, ако данните не са съхранени като Unicode.

Символи срещу байтове

В примера на SQL Server, ако използвахме Len() функция вместо това би върнала 3. Това е така, защото Len() връща броя на знаците, а не байтовете.

По същия начин за MySQL, ако използвахме Char_Length() функция, тя също би върнала 3, защото Char_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. Научете как да архивирате вашата MySQL база данни

  2. Използването на if(isset($_POST['submit'])), за да не се показва ехо, когато скриптът е отворен, не работи

  3. актуализиране на стойностите на колоните с колона на друга таблица въз основа на условие

  4. MySQL Great Circle Distance (формула на Haversine)

  5. Как мога да проверя типа на MySQL двигателя за конкретна таблица?