Mysql
 sql >> Database >  >> RDS >> Mysql

Qual è l'equivalente LEN() in MySQL?

In SQL Server puoi utilizzare LEN() funzione per restituire il numero di caratteri in una stringa. Questa è una funzione Transact-SQL che può essere usata anche nei database di Azure.

In MySQL, devi usare CHAR_LENGTH() funzione.

Esempi

Ecco un esempio di ciascuno.

SQL Server (T-SQL)

SELECT LEN('Cat') AS 'T-SQL';

Risultato:

T-SQL
-----
3    

MySQL

SELECT CHAR_LENGTH('Cat') AS MySQL;

Risultato:

+-------+
| MySQL |
+-------+
|     3 |
+-------+

Attento agli spazi vuoti finali!

Una differenza tra queste funzioni è nel modo in cui trattano gli spazi finali (ad esempio gli spazi alla fine della stringa). LEN() di T-SQL funzione esclude spazi vuoti finali, mentre CHAR_LENGTH() di MySQL funzione include loro.

Quindi, se aggiungiamo spazi finali agli esempi precedenti, otteniamo quanto segue.

SQL Server (T-SQL)

SELECT LEN('Cat ') AS 'T-SQL';

Risultato:

T-SQL
-----
3    

MySQL

SELECT CHAR_LENGTH('Cat ') AS MySQL;

Risultato:

+-------+
| MySQL |
+-------+
|     4 |
+-------+

Se devi escludere gli spazi finali in MySQL, dovrai racchiudere la stringa in un TRIM() funzione. In questo modo:

SELECT CHAR_LENGTH(TRIM('Cat ')) AS 'MySQL with TRIM';

Risultato:

+-----------------+
| MySQL with TRIM |
+-----------------+
|               3 |
+-----------------+

Ma non preoccuparti degli spazi vuoti in testa!

Entrambi LEN() di T-SQL funzione e CHAR_LENGTH() di MySQL funzione includi spazi vuoti iniziali.

SQL Server (T-SQL)

SELECT LEN(' Cat') AS 'T-SQL';

Risultato:

T-SQL
-----
4     

MySQL

SELECT CHAR_LENGTH(' Cat') AS 'MySQL';

Risultato:

+-------+
| MySQL |
+-------+
|     4 |
+-------+