web-dev-qa-db-ja.com

MySQL-varchar列から数値のみを選択します

次の表を検討してください。

create table mixedvalues (value varchar(50));

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

次のようなnumeric値のみを返すselectステートメントを作成するにはどうすればよいですか?

100
200
300
400
500

SQLFiddle

19
Wes
SELECT * 
FROM mixedvalues 
WHERE value REGEXP '^[0-9]+$';
79
Strawberry
SELECT * 
FROM mixedvalues 
WHERE concat('',value * 1) = value;

参照: 値がMySQLの数値であるかどうかを検出

5
Slowcoder

あなたは近かった:

SELECT * 
FROM mixedvalues 
WHERE value > 0;

SQLFiddle

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