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

Co je ekvivalent LEN() v MySQL?

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 |
+-------+


  1. Vytváření plánů údržby v SQL Server

  2. Vyrovnávání zatížení databáze pomocí ProxySQL a AWS Aurora

  3. Jak funguje krok zástupného znaku JSONPath (**) v MariaDB

  4. Vložit do z CTE