Pokud potřebujete vrátit všechny řádky, které obsahují alespoň jednu číslici v MySQL, může se vám 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 | | Long Weight (blue) | | Long Weight (green) | | Smash 2000 Sledge Hammer | | Chainsaw (Includes 5 spare fingers) | | Straw Dog Box | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Tento sloupec 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 Sledge Hammer | | Chainsaw (Includes 5 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
MySQL funkce najít všechny řádky, které odpovídají vzoru. Vzor obsahuje všechny číslice od 0
až 9
, plus jakýkoli jiný znak.