Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak działa funkcja CHARACTER_LENGTH() w MySQL

W MySQL funkcja CHARACTER_LENGTH() funkcja zwraca długość ciągu mierzoną w znakach.

CHARACTER_LENGTH() jest synonimem CHAR_LENGTH() funkcja.

Składnia

Składnia wygląda tak:

CHARACTER_LENGTH(str)

Gdzie str to ciąg, dla którego zostanie zwrócona długość.

Przykład 1 – Podstawowe użycie

Oto przykład podstawowego użycia:

SELECT CHARACTER_LENGTH('Cat');

A oto wynik:

+-------------------------+
| CHARACTER_LENGTH('Cat') |
+-------------------------+
|                       3 |
+-------------------------+

Przykład 2 – Końcowe blanki

Zauważ, że CHARACTER_LENGTH() uwzględnia w swoich obliczeniach końcowe spacje (np. spacje na końcu ciągu).

Więc jeśli dodamy spację na końcu poprzedniego przykładu:

SELECT CHARACTER_LENGTH('Cat');

Oto wynik:

+--------------------------+
| CHARACTER_LENGTH('Cat ') |
+--------------------------+
|                        4 |
+--------------------------+

Ale zawsze możemy usunąć tę końcową spację za pomocą funkcji TRIM() funkcja lub RTRIM() funkcja:

SELECT 
  CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM',
  CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';

Oto wynik:

+------+-------+
| TRIM | RTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

Przykład 3 – Wiodące spacje

Ta sama koncepcja dotyczy wiodących półfabrykatów. Możesz użyć opcji TRIM lub LTRIM :

SELECT 
  CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM',
  CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';

Wynik:

+------+-------+
| TRIM | LTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

Przykład 4 – Typy danych

Nie ma znaczenia, jaki typ danych jest przechowywany w ciągu, nadal zwróci ten sam wynik. Jest to w przeciwieństwie do LENGTH() funkcja, która zwróci podwójną liczbę znaków w przypadkach, gdy dane są przechowywane jako ciąg Unicode.

W poniższym przykładzie kolumna ArtistName używa varchar(255) :

SELECT CHARACTER_LENGTH(ArtistName) Result
FROM Artists
WHERE ArtistName = 'Lit';

Oto wynik:

+--------+
| Result |
+--------+
|      3 |
+--------+

A jeśli zmodyfikujemy ArtistName kolumna do używania Unicode:

ALTER TABLE Artists 
MODIFY COLUMN ArtistName VARCHAR(255) unicode;

I ponownie uruchom to samo zapytanie:

SELECT CHARACTER_LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

Nadal otrzymujemy ten sam wynik:

+--------+
| Result |
+--------+
|      3 |
+--------+

Jednakże, gdybyśmy użyli LENGTH() funkcja, wynik byłby 6. Dzieje się tak, ponieważ ciągi Unicode przechowują 2 bajty na znak, a LENGTH() funkcja zwraca długość mierzoną w bajtach.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instalowanie MySQL na CentOS 7

  2. Błąd:Klient nie obsługuje protokołu uwierzytelniania żądanego przez serwer; rozważ aktualizację klienta MySQL

  3. Jak włączyć pamięć podręczną zapytań MySQL?

  4. Jak ustawić parametry ORDER BY za pomocą przygotowanej instrukcji PDO?

  5. mysqli::query():Nie można pobrać mysqli