Ответ 1
SELECT *
FROM mixedvalues
WHERE value REGEXP '^[0-9]+$';
Рассмотрим следующую таблицу:
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
SELECT *
FROM mixedvalues
WHERE value REGEXP '^[0-9]+$';
SELECT *
FROM mixedvalues
WHERE concat('',value * 1) = value;
Вы были близки
SELECT *
FROM mixedvalues
WHERE value > 0;
SELECT * FROM mixedvalues
WHERE value > 0
ORDER BY CAST(value as SIGNED INTEGER) ASC
Вы можете отфильтровать свой результирующий набор с помощью функции ISNUMERIC
:
SELECT value
FROM #mixedvalues
where ISNUMERIC(value)=1