En SQL Server, puede usar LEN()
función para devolver el número de caracteres en una cadena. Esta es una función de Transact-SQL que también se puede usar en bases de datos de Azure.
En MySQL, debe usar CHAR_LENGTH()
función.
Ejemplos
Aquí hay un ejemplo de cada uno.
Servidor SQL (T-SQL)
SELECT LEN('Cat') AS 'T-SQL';
Resultado:
T-SQL ----- 3
MySQL
SELECT CHAR_LENGTH('Cat') AS MySQL;
Resultado:
+-------+ | MySQL | +-------+ | 3 | +-------+
¡Cuidado con los espacios en blanco finales!
Una diferencia entre estas funciones es la forma en que tratan los espacios en blanco finales (por ejemplo, espacios al final de la cadena). LEN()
de T-SQL función excluye espacios en blanco al final, mientras que CHAR_LENGTH()
de MySQL función incluye ellos.
Entonces, si agregamos espacios en blanco al final de los ejemplos anteriores, obtenemos lo siguiente.
Servidor SQL (T-SQL)
SELECT LEN('Cat ') AS 'T-SQL';
Resultado:
T-SQL ----- 3
MySQL
SELECT CHAR_LENGTH('Cat ') AS MySQL;
Resultado:
+-------+ | MySQL | +-------+ | 4 | +-------+
Si necesita excluir los espacios en blanco finales en MySQL, deberá envolver la cadena en un TRIM()
función. Así:
SELECT CHAR_LENGTH(TRIM('Cat ')) AS 'MySQL with TRIM';
Resultado:
+-----------------+ | MySQL with TRIM | +-----------------+ | 3 | +-----------------+
¡Pero no se preocupe por los espacios en blanco iniciales!
Ambos LEN()
de T-SQL función y CHAR_LENGTH()
de MySQL función incluir espacios en blanco iniciales.
Servidor SQL (T-SQL)
SELECT LEN('Cat') AS 'T-SQL';
Resultado:
T-SQL ----- 4
MySQL
SELECT CHAR_LENGTH(' Cat') AS 'MySQL';
Resultado:
+-------+ | MySQL | +-------+ | 4 | +-------+