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

Jak zjistit, zda hodnota obsahuje alespoň jednu číselnou číslici v MariaDB

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 09 , plus jakýkoli jiný znak.


  1. Přeměna libovolně mnoha řádků na sloupce v PostgreSQL

  2. Nejbližší zápas, část 1

  3. Přehled křížové replikace PostgreSQL a MySQL

  4. Začínáme s autonomní databází Oracle v cloudu