Om du behöver returnera alla rader som innehåller minst en numerisk siffra i MySQL, kan följande exempel vara praktiskt.
Exempel
Anta att vi har en tabell som heter Products
med följande data i dess ProductName
kolumn:
SELECT ProductName
FROM Products;
Resultat:
+-------------------------------------+ | 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) | +-------------------------------------+
Den här kolumnen innehåller teckendata, men vissa rader innehåller siffror inom dessa teckendata (även om de inte lagras som en numerisk typ).
Vi kan använda följande fråga för att returnera bara de rader som innehåller siffror representerade av numeriska siffror:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Resultat:
+-------------------------------------+ | ProductName | +-------------------------------------+ | Smash 2000 Sledge Hammer | | Chainsaw (Includes 5 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Som förväntat returneras endast de rader som innehåller siffror.
I det här fallet använde vi MySQL:s REGEXP
funktion för att hitta alla rader som matchade ett mönster. Mönstret omfattar alla numeriska siffror från 0
till 9
plus alla andra tecken.