Когато работите с MariaDB, понякога може да се наложи да върнете всички редове, които съдържат поне една цифрова цифра.
В такива случаи може да намерите следния пример за полезен.
Пример
Да предположим, че имаме таблица, наречена Products
със следните данни в неговия ProductName
колона:
SELECT ProductName
FROM Products;
Резултат:
+-------------------------------------+ | ProductName | +-------------------------------------+ | Left Handed Screwdriver | | Right Handed Screwdriver | | Bottomless Coffee Cup | | Smash 2000 Sledgehammer | | Chainsaw (includes 3 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Тази колона очевидно съдържа данни за знаци, но някои редове съдържат числа в тези знакови данни (въпреки че не се съхраняват като числов тип).
Можем да използваме следната заявка, за да върнем само онези редове, които съдържат числа, представени с цифрови цифри:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Резултат:
+-------------------------------------+ | ProductName | +-------------------------------------+ | Smash 2000 Sledgehammer | | Chainsaw (includes 3 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Както се очаква, се връщат само онези редове, които съдържат числа.
В този случай използвахме REGEXP
функция за намиране на всички редове, които съответстват на модел. Моделът обхваща всички цифрови цифри от 0
до 9
, плюс всеки друг знак.