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

Najděte v MySQL hodnoty, které neobsahují čísla

Pokud potřebujete vrátit všechny řádky, které neobsahují žádná čísla, může vám pomoci následující.

Přísně vzato, čísla mohou být reprezentována slovy a jinými symboly, ale pro tento článek „číslo“ jednoduše znamená „číselná číslice“. Takže nacházíme hodnoty, které neobsahují žádné číselné číslice.

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é neobsahují žádné číselné číslice:

SELECT ProductName 
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';

Výsledek:

+--------------------------+
| ProductName              |
+--------------------------+
| Left handed screwdriver  |
| Right handed screwdriver |
| Long Weight (blue)       |
| Long Weight (green)      |
| Straw Dog Box            |
+--------------------------+

Podle očekávání jsou vráceny pouze ty řádky, které neobsahují čísla.

Zde jsme použili NOT REGEX MySQL funkce najít všechny řádky, které odpovídají vzoru. Vzor obsahuje všechny číslice od 09 , plus jakýkoli jiný znak.

Dalo by se to napsat také takto:

SELECT ProductName 
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');

Výsledek:

+--------------------------+
| ProductName              |
+--------------------------+
| Left handed screwdriver  |
| Right handed screwdriver |
| Long Weight (blue)       |
| Long Weight (green)      |
| Straw Dog Box            |
+--------------------------+

  1. PostgreSQL dotaz na zeměpisnou šířku a délku

  2. SQL Server String nebo binární data by byla zkrácena

  3. Použití klauzule IN s řetězcem odděleným čárkou z výstupu funkce replace() v Oracle SQL

  4. sloupec aktualizace mysql s hodnotou z jiné tabulky