Ако трябва да върнете всички редове, които съдържат поне една цифрова цифра в MySQL, следният пример може да ви бъде полезен.
Пример
Да предположим, че имаме таблица, наречена Products
със следните данни в неговия ProductName
колона:
SELECT ProductName
FROM Products;
Резултат:
+-------------------------------------+ | 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) | +-------------------------------------+
Тази колона съдържа данни за знаци, но някои редове съдържат числа в рамките на тези знакови данни (въпреки че не се съхраняват като числов тип).
Можем да използваме следната заявка, за да върнем само онези редове, които съдържат числа, представени с цифрови цифри:
SELECT ProductName
FROM Products
WHERE ProductName REGEXP '[0-9]+';
Резултат:
+-------------------------------------+ | ProductName | +-------------------------------------+ | Smash 2000 Sledge Hammer | | Chainsaw (Includes 5 spare fingers) | | Bottomless Coffee Mugs (4 Pack) | +-------------------------------------+
Както се очаква, се връщат само онези редове, които съдържат числа.
В този случай използвахме REGEXP
на MySQL функция за намиране на всички редове, които съответстват на модел. Моделът обхваща всички цифрови цифри от 0
до 9
, плюс всеки друг знак.