Als u alle rijen moet retourneren die geen cijfers bevatten, kan het volgende helpen.
Strikt genomen 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 | | 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 geen numerieke cijfers bevatten:
SELECT ProductName
FROM Products
WHERE ProductName NOT REGEXP '[0-9]+';
Resultaat:
+--------------------------+ | ProductName | +--------------------------+ | Left handed screwdriver | | Right handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Straw Dog Box | +--------------------------+
Zoals verwacht worden alleen de rijen die geen getallen bevatten geretourneerd.
Hier gebruikten we MySQL's 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 geschreven worden:
SELECT ProductName
FROM Products
WHERE NOT (ProductName REGEXP '[0-9]+');
Resultaat:
+--------------------------+ | ProductName | +--------------------------+ | Left handed screwdriver | | Right handed screwdriver | | Long Weight (blue) | | Long Weight (green) | | Straw Dog Box | +--------------------------+