Problém:
Chtěli byste odstranit mezery nebo konkrétní znaky ze začátku a konce řetězce v SQLite.
Příklad:
Naše databáze obsahuje tabulku s názvem category
s údaji ve dvou sloupcích:id
a name
.
id | jméno |
---|---|
1 | ' sladkosti ' |
2 | 'maso' |
3 | ' zelenina' |
Pojďme oříznout název každé kategorie produktů, abychom odstranili zbytečné místo na začátku a konci.
Řešení:
Použijeme TRIM
funkce. Zde je dotaz, který byste napsali:
SELECT TRIM(' ', name) AS new_name FROM category;
Všimněte si, že znak k odstranění je volitelný; stačí zadat název sloupce, pokud chcete odstranit znak mezery:
SELECT TRIM(name) AS new_name FROM category;
Zde je výsledek obou dotazů:
new_name |
---|
'sladkosti' |
'maso' |
'vegetables' |
Diskuse:
Použijte TRIM
funkce v databázi SQLite, pokud chcete oříznout řetězec v tabulce. Tato funkce umožňuje odstranit určitý znak ze začátku a/nebo konce řetězce. Vyžaduje následující argumenty:
- Znak, který chcete z řetězce oříznout, což je ve výchozím nastavení mezera.
- Název sloupce řetězce, který má být oříznut.
V našem příkladu to vypadá takto:
TRIM(' ' , name)
SQLite nám také umožňuje odstranit mezeru nebo jiné znaky pouze ze začátku nebo konce řetězce.
Níže uvedený příklad odstraňuje mezeru z konce každého názvu kategorie pomocí RTRIM()
funkce:
SELECT RTRIM(name) AS new_name FROM company;
new_name |
---|
'sladkosti' |
'maso' |
' zelenina' |
Jako TRIM()
, RTRIM()
funkce má dva argumenty:znaky, které mají být odstraněny, a řetězec, který má být oříznut. Opět stačí zadat název sloupce, pokud je znakem k oříznutí mezera.
Pokud chcete odstranit znaky ze začátku řetězce, ale ne z konce, použijte LTRIM()
funkce:
SELECT LTRIM(name) AS new_name FROM company;
Tuto funkci samozřejmě můžete použít se dvěma argumenty:znaky, které se mají odstranit, a řetězec, který se má oříznout.
Výše uvedený dotaz vrátí sloupec názvu bez mezery na začátku:
new_name |
---|
'sladkosti' |
'maso' |
'vegetables' |