sql >> Database >  >> RDS >> Mysql

Detecteren of een waarde ten minste één numeriek cijfer bevat in MySQL

Als u alle rijen moet retourneren die ten minste één numeriek cijfer in MySQL bevatten, kan het volgende voorbeeld van pas komen.

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            |
| Long Weight (blue)                  |
| Long Weight (green)                 |
| Smash 2000 Sledge Hammer            |
| Chainsaw (Includes 5 spare fingers) |
| Straw Dog Box                       |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Deze kolom bevat 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 getallen bevatten die worden weergegeven door numerieke cijfers:

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

Resultaat:

+-------------------------------------+
| ProductName                         |
+-------------------------------------+
| Smash 2000 Sledge Hammer            |
| Chainsaw (Includes 5 spare fingers) |
| Bottomless Coffee Mugs (4 Pack)     |
+-------------------------------------+

Zoals verwacht worden alleen de rijen die getallen bevatten geretourneerd.

In dit geval gebruikten we MySQL's REGEXP 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.


  1. Postgres ontbreekt FROM-clausule invoerfout bij query met WITH-component

  2. PostgreSQL-tabel maken als deze niet bestaat

  3. Toegang 2016 voor Dummies Cheatsheet

  4. SQLite onUpgrade() frustratie