sql >> Databáze >  >> RDS >> MariaDB

Vyberte Vše před nebo po určité postavě v MariaDB

V MariaDB můžete použít SUBSTRING_INDEX() funkce vrátit vše před nebo za určitým znakem (nebo znaky) v řetězci.

Tato funkce přijímá tři argumenty; řetězec, oddělovač a počet výskytů tohoto oddělovače, který se má použít k určení podřetězce, který se má vrátit.

Příklady

Jak funkce funguje, můžeme vidět na následujících příkladech.

Vyberte Vše před

Chcete-li vybrat vše před určitým znakem, nastavte třetí argument na kladnou hodnotu:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 2);

Výsledek:

Red,Green

V tomto příkladu vybereme vše před druhou čárkou. To se provádí pomocí čárky (, ) jako oddělovač a 2 jako hrabě.

V tomto příkladu jsem použil čárku, ale mohl to být jakýkoli znak nebo řetězec:

SELECT SUBSTRING_INDEX('Red or Green or Blue', ' or ', 2);

Výsledek:

Red or Green

Vyberte možnost Vše po

Použijte zápornou hodnotu k výběru všeho po určitém znaku:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', -2);

Výsledek:

Green,Blue

Všimněte si, že záporná hodnota znamená, že se bude počítat zprava, poté vyberte podřetězec napravo od oddělovače.

Když oddělovač není nalezen

Pokud oddělovač v řetězci není nalezen, vrátí se celý řetězec.

Příklad:

SELECT SUBSTRING_INDEX('Red,Green,Blue', '-', 1);

Výsledek:

Red,Green,Blue

V tomto případě je vrácen celý řetězec, protože jsme použili pomlčku (- ) jako oddělovač, ale v řetězci nebyly žádné pomlčky.

Stejný výsledek bychom dostali, kdyby řetězec ano obsahovat oddělovač, ale náš count překračuje počet oddělovačů v řetězci.

Příklad:

SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 10);

Výsledek:

Red,Green,Blue

Rozlišovat malá a velká písmena

SUBSTRING_INDEX() Funkce provádí vyhledávání oddělovače s rozlišením velkých a malých písmen. To znamená, že oddělovač musí být správný velikost písmen, než se bude shodovat.

Nesprávný případ

Zde je příklad, kdy případ neodpovídá:

SELECT SUBSTRING_INDEX('Red and green and blue', 'AND', 2);

Výsledek:

Red and green and blue

Dostaneme celý řetězec v plné výši.

Správný případ

Nyní je zde stejný příklad, ale případ se shoduje:

SELECT SUBSTRING_INDEX('Red and green and blue', 'and', 2);

Výsledek:

Red and green

  1. Jak formátovat čísla jako měnu v MySQL

  2. PostgreSQL -musí se objevit v klauzuli GROUP BY nebo být použit v agregační funkci

  3. Doplňte řetězec úvodními nulami, aby měl v SQL Server 2008 3 znaky

  4. MySQL Pořadí podle čísla, Null poslední