sql >> Database >  >> RDS >> MariaDB

Waarden krijgen die geen getallen bevatten in MariaDB

Wanneer u met MariaDB werkt, zult u af en toe merken dat u alle rijen moet retourneren die geen cijfers bevatten.

Technisch gezien kunnen getallen worden weergegeven door woorden en andere symbolen, maar voor dit artikel betekent "nummer" gewoon "numeriek cijfer". We vinden dus waarden die geen numerieke cijfers bevatten.

Voorbeeld

Stel dat we een tabel hebben met de naam Products met de volgende gegevens in zijn ProductName kolom:

SELECT ProductName 
FROM Products;

Resultaat:

+-------------------------------------+
| ProductName                         |
+-------------------------------------+
| Left Handed Screwdriver             |
| Right Handed Screwdriver            |
| Bottomless Coffee Cup               |
| Smash 2000 Sledgehammer             |
| Chainsaw (includes 3 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Deze kolom bevat uiteraard tekengegevens, maar sommige rijen bevatten getallen binnen die tekengegevens (ook al zijn ze niet opgeslagen als een numeriek type).

We kunnen de volgende query gebruiken om alleen die rijen te retourneren die geen numerieke cijfers bevatten:

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

Resultaat:

+--------------------------+
| ProductName              |
+--------------------------+
| Left Handed Screwdriver  |
| Right Handed Screwdriver |
| Bottomless Coffee Cup    |
+--------------------------+

Zoals verwacht worden alleen de rijen die geen getallen bevatten geretourneerd.

In dit geval gebruikten we de NOT REGEX functie om alle rijen te vinden die overeenkomen met een patroon. Het patroon omvat alle numerieke cijfers vanaf 0 tot 9 , plus elk ander teken.

Dit kan ook zo worden geschreven:

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

Resultaat:

+--------------------------+
| ProductName              |
+--------------------------+
| Left Handed Screwdriver  |
| Right Handed Screwdriver |
| Bottomless Coffee Cup    |
+--------------------------+

Zelfde output.


  1. Fout:Kolom bestaat niet

  2. Een restant krijgen met MOD() in PostgreSQL, MS SQL Server en MySQL

  3. Juiste query om het huidige aantal verbindingen in een PostgreSQL DB te krijgen

  4. ScaleGrid lanceert Google Cloud Platform (GCP)-ondersteuning voor beheerde databasehosting