V SQL Server můžete použít LEN()
funkce, která vrátí počet znaků v řetězci. Toto je funkce Transact-SQL, kterou lze také použít v databázích Azure.
V MySQL musíte použít CHAR_LENGTH()
funkce.
Příklady
Zde je příklad každého.
SQL Server (T-SQL)
SELECT LEN('Cat') AS 'T-SQL';
Výsledek:
T-SQL ----- 3
MySQL
SELECT CHAR_LENGTH('Cat') AS MySQL;
Výsledek:
+-------+ | MySQL | +-------+ | 3 | +-------+
Dejte si pozor na koncové mezery!
Jeden rozdíl mezi těmito funkcemi je ve způsobu, jakým zacházejí s koncovými mezerami (např. mezerami na konci řetězce). LEN()
T-SQL funkce nezahrnuje koncové mezery, zatímco CHAR_LENGTH()
MySQL funkce zahrnuje je.
Pokud tedy k předchozím příkladům přidáme koncové mezery, dostaneme následující.
SQL Server (T-SQL)
SELECT LEN('Cat ') AS 'T-SQL';
Výsledek:
T-SQL ----- 3
MySQL
SELECT CHAR_LENGTH('Cat ') AS MySQL;
Výsledek:
+-------+ | MySQL | +-------+ | 4 | +-------+
Pokud potřebujete v MySQL vyloučit koncové mezery, budete muset řetězec zabalit do TRIM()
funkce. Takhle:
SELECT CHAR_LENGTH(TRIM('Cat ')) AS 'MySQL with TRIM';
Výsledek:
+-----------------+ | MySQL with TRIM | +-----------------+ | 3 | +-----------------+
Ale nedělejte si starosti s Leading Blanks!
Obě LEN()
T-SQL funkce a CHAR_LENGTH()
MySQL funkce zahrnout úvodní mezery.
SQL Server (T-SQL)
SELECT LEN(' Cat') AS 'T-SQL';
Výsledek:
T-SQL ----- 4
MySQL
SELECT CHAR_LENGTH(' Cat') AS 'MySQL';
Výsledek:
+-------+ | MySQL | +-------+ | 4 | +-------+