복붙노트

[SQL] MySQL은 - VARCHAR 컬럼에서 숫자 값만 선택

SQL

MySQL은 - VARCHAR 컬럼에서 숫자 값만 선택

다음 표를 고려 ​​:

create table mixedvalues (value varchar(50));

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

난 단지 같은 숫자 값을 반환 SELECT 문을 쓸 수있는 방법

100
200
300
400
500

해결법

  1. ==============================

    1.

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

    2.

    SELECT * 
    FROM mixedvalues 
    WHERE concat('',value * 1) = value;
    

    참조 : 값이 숫자는 MySQL의에있는 경우 감지

  3. ==============================

    3.당신은 가까웠다 :

    당신은 가까웠다 :

    SELECT * 
    FROM mixedvalues 
    WHERE value > 0;
    

    SQLFiddle

  4. ==============================

    4.

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

    5.당신은 ISNUMERIC 기능을 사용하여 결과 세트를 필터링 할 수 있습니다 :

    당신은 ISNUMERIC 기능을 사용하여 결과 세트를 필터링 할 수 있습니다 :

    SELECT value
    FROM #mixedvalues 
    where ISNUMERIC(value)=1
    
  6. from https://stackoverflow.com/questions/22510736/mysql-select-only-numeric-values-from-varchar-column by cc-by-sa and MIT license