sql >> Databáze >  >> RDS >> Mysql

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

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


  1. Snímky databáze SQL Server -4

  2. Použití automatizace k urychlení testů vydání na PostgreSQL

  3. Název sloupce tabulky Oracle s mezerou

  4. Vše, co byste měli vědět o SQL Server JOINS