sql >> Database >  >> RDS >> SQLite

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

Het volgende SQLite-voorbeeld retourneert alle rijen die ten minste één numeriek cijfer bevatten.

Voorbeeldgegevens

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

SELECT ProductName 
FROM Products;

Resultaat:

ProductName                         
------------------------------------
Widget Holder (holds 5 gram widgets)
Widget Opener                       
Bob's "Best" Widget                 
Blue Widget                         
Urban Dictionary Version 1.2        
Beer Water (375ml)                  

Voorbeeld zoekopdracht

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                         
------------------------------------
Widget Holder (holds 5 gram widgets)
Urban Dictionary Version 1.2        
Beer Water (375ml)                  

Alleen de rijen die getallen bevatten, worden geretourneerd. Met "cijfers" bedoel ik numerieke cijfers. Getallen kunnen ook worden weergegeven door woorden of symbolen, maar dit voorbeeld detecteert alleen numerieke cijfers.

In SQLite, de REGEXP operator is een speciale syntaxis voor de REGEXP() gebruikersfunctie.

Daarom kunnen we de volgende code gebruiken om hetzelfde resultaat te krijgen:

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

Resultaat:

ProductName                         
------------------------------------
Widget Holder (holds 5 gram widgets)
Urban Dictionary Version 1.2        
Beer Water (375ml)                  

  1. Veiligheidsnetten

  2. Disaster Recovery Planning voor MySQL &MariaDB

  3. Volgorde als standaardwaarde voor een kolom

  4. Hoe lange regels tekst in SQLite-resultaten te laten lopen