Při práci s MariaDB se občas může stát, že budete potřebovat vrátit všechny řádky, které obsahují alespoň jednu číslici.
V takových případech se vám může hodit následující příklad.
Příklad
Předpokládejme, že máme tabulku nazvanou Products
s následujícími údaji ve svém ProductName
sloupec:
SELECT ProductName
FROM Products;
Výsledek:
+-------------------------------------+ | ProductName | +-------------------------------------+ | Left Handed Screwdriver | | Right Handed Screwdriver | | Bottomless Coffee Cup | | Smash 2000 Sledgehammer | | Chainsaw (includes 3 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Tento sloupec samozřejmě obsahuje znaková data, ale některé řádky obsahují čísla v těchto znakových datech (i když nejsou uloženy jako číselný typ).
Pomocí následujícího dotazu můžeme vrátit pouze ty řádky, které obsahují čísla reprezentovaná numerickými číslicemi:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Výsledek:
+-------------------------------------+ | ProductName | +-------------------------------------+ | Smash 2000 Sledgehammer | | Chainsaw (includes 3 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Podle očekávání jsou vráceny pouze ty řádky, které obsahují čísla.
V tomto případě jsme použili REGEXP
funkce najít všechny řádky, které odpovídají vzoru. Vzor obsahuje všechny číslice od 0
až 9
, plus jakýkoli jiný znak.