В SQL Server можете да използвате LEN()
функция за връщане на броя на знаците в низ. Това е функция на Transact-SQL, която може да се използва и в бази данни на Azure.
В MySQL трябва да използвате CHAR_LENGTH()
функция.
Примери
Ето пример за всеки.
SQL сървър (T-SQL)
SELECT LEN('Cat') AS 'T-SQL';
Резултат:
T-SQL ----- 3
MySQL
SELECT CHAR_LENGTH('Cat') AS MySQL;
Резултат:
+-------+ | MySQL | +-------+ | 3 | +-------+
Внимавайте за крайни празни места!
Една разлика между тези функции е в начина, по който третират крайните празни места (например интервали в края на низа). LEN()
на T-SQL функция изключва крайни празни места, докато CHAR_LENGTH()
на MySQL функцията включва тях.
Така че, ако добавим крайни празни места към предишните примери, получаваме следното.
SQL сървър (T-SQL)
SELECT LEN('Cat') AS 'T-SQL';
Резултат:
T-SQL ----- 3
MySQL
SELECT CHAR_LENGTH('Cat') AS MySQL;
Резултат:
+-------+ | MySQL | +-------+ | 4 | +-------+
Ако трябва да изключите крайните празни места в MySQL, ще трябва да увиете низа в TRIM()
функция. Като това:
SELECT CHAR_LENGTH(TRIM('Cat ')) AS 'MySQL with TRIM';
Резултат:
+-----------------+ | MySQL with TRIM | +-----------------+ | 3 | +-----------------+
Но не се притеснявайте за водещите празни места!
И двата T-SQL LEN()
функция и CHAR_LENGTH()
на MySQL функция включва водещи празни места.
SQL сървър (T-SQL)
SELECT LEN(' Cat') AS 'T-SQL';
Резултат:
T-SQL ----- 4
MySQL
SELECT CHAR_LENGTH(' Cat') AS 'MySQL';
Резултат:
+-------+ | MySQL | +-------+ | 4 | +-------+