W SQL Server możesz użyć LEN()
funkcja zwracająca liczbę znaków w ciągu. Jest to funkcja Transact-SQL, której można również używać w bazach danych Azure.
W MySQL musisz użyć CHAR_LENGTH()
funkcja.
Przykłady
Oto przykład każdego z nich.
Serwer SQL (T-SQL)
SELECT LEN('Cat') AS 'T-SQL';
Wynik:
T-SQL ----- 3
MySQL
SELECT CHAR_LENGTH('Cat') AS MySQL;
Wynik:
+-------+ | MySQL | +-------+ | 3 | +-------+
Uważaj na puste znaki!
Jedną z różnic między tymi funkcjami jest sposób, w jaki traktują końcowe spacje (np. spacje na końcu ciągu). LEN()
w T-SQL funkcja wyklucza końcowe spacje, podczas gdy CHAR_LENGTH()
w MySQL funkcja zawiera ich.
Więc jeśli dodamy końcowe spacje do poprzednich przykładów, otrzymamy następujące.
Serwer SQL (T-SQL)
SELECT LEN('Cat') AS 'T-SQL';
Wynik:
T-SQL ----- 3
MySQL
SELECT CHAR_LENGTH('Cat') AS MySQL;
Wynik:
+-------+ | MySQL | +-------+ | 4 | +-------+
Jeśli chcesz wykluczyć końcowe spacje w MySQL, musisz zawinąć ciąg w TRIM()
funkcjonować. Tak:
SELECT CHAR_LENGTH(TRIM('Cat ')) AS 'MySQL with TRIM';
Wynik:
+-----------------+ | MySQL with TRIM | +-----------------+ | 3 | +-----------------+
Ale nie martw się o wiodące puste miejsca!
Obie metody LEN()
T-SQLa funkcja i CHAR_LENGTH()
MySQL funkcja zawiera wiodące puste miejsca.
Serwer SQL (T-SQL)
SELECT LEN('Cat') AS 'T-SQL';
Wynik:
T-SQL ----- 4
MySQL
SELECT CHAR_LENGTH(' Cat') AS 'MySQL';
Wynik:
+-------+ | MySQL | +-------+ | 4 | +-------+