MySQL. Выберите только числовые значения из столбца varchar.

Рассмотрим следующую таблицу:

create table mixedvalues (value varchar(50));

insert into mixedvalues values 
('100'),
('ABC100'),
('200'),
('ABC200'),
('300'),
('ABC300'),
('400'),
('ABC400'),
('500'),
('ABC500');

Как я могу написать оператор выбора, который будет возвращать только числовые значения, такие как

100
200
300
400
500

SQLFiddle

Ответы

Ответ 1

SELECT * 
FROM mixedvalues 
WHERE value REGEXP '^[0-9]+$';

Ответ 3

Вы были близки

SELECT * 
FROM mixedvalues 
WHERE value > 0;

SQLFiddle

Ответ 4

SELECT * FROM mixedvalues 
WHERE value > 0 
ORDER BY CAST(value as SIGNED INTEGER) ASC

Ответ 5

Вы можете отфильтровать свой результирующий набор с помощью функции ISNUMERIC:

SELECT value
FROM #mixedvalues 
where ISNUMERIC(value)=1