데이터베이스의 정보를 쿼리문을 사용해 불러오려고 한다. 그런데 우리가 불러오고 싶은 값이 오직 숫자만으로 이루어진 경우 이를 불러오기 위해서는 어떻게 해야할까? 그 방법에 대하여 알아볼까한다.

참 어려운 부분이 이를 해결하기 위한 다양한 방법의 SQL 쿼리가 존재한다. 본인은 PHP 언어에서 MySQL을 사용했으며 다양한 검색결과를 사용해 테스트해보았으나 상당수가 적용되지 않음을 확인했다. 아무래도 서버언어 및 SQL 언어에 따라 차이가 있음에도 이에 대한 정확한 정보가 아닌 글들이 산재되어 있기 때문인 것같다... 어찌되었건 아래의 문법은 PHP의 MySQL에서 정상적으로 동작됨을 확인하였음으로 잘 구동될 것이다.

우선 이를 활용하기 위한 방법으로 CONCAT() 함수를 이용할이다. 이 함수가 하는 것은...

CONCAT() - 두 개 이상의 인자들을 연결하여 문자열로 반환

이 처럼 두 개 이상의 인자들의 하나의 문자열로 반환하여 준다. 간단한 사용방법은 아래와 같다.

SELECT * WHERE CONCAT("", 컬럼이름 * 1) = 컬럼이름;

그럼 이를 사용해 실전 예제를 알아보도록 하자.


! 숫자만 불러오는 SQL 쿼리 예제보기

아래는 데이터베이스의 한 테이블이다. 이 중에서 name 컬럼에 있는 값들 중 숫자만 가지고 있는 데이터를 불러오고자한다. 예제는 php를 기준으로 하였다.

# 테이블명 - domain

================
  id  ||       name
--------------------------
  1   ||  webisfree
  2   ||  onlyshort
  3   ||  78425165
  4   ||  nowcurrenttime
================

위 테이블에서 숫자만으로 이루어진 값을 가져오기 위해 아래의 방법으로 코드를 작성할 수 있다.

SELECT * WHERE CONCAT("", name * 1) = name;

이 코드를 수행하면 SELECT를 사용한 결과값으로 아래와 같이 출력된다.

78425165

총 4개의 값들중에서 숫자만을 가지고 있는 하나의 값을 정상적으로 출력하였다. 이처럼 숫자 값만이 필요한 경우 위와 같은 방법을 사용하여 쿼리를 짜면 간단하게 숫자만으로 이루어지는 값들을 가져올 수 있을 것이다.

# 생각해 볼 사항들...
숫자라고해도 여러가지가 존재한다. 음수인 경우, 소수점이 있는 경우 아니면 구둣점만 있는 경우 등등 매우 다양하다. 이와 같이 상황에 따라 달라지는 숫자타입의 값들을 충족하기 위해서는 다양한 쿼리문을 사용하여야할 것이다. 때로는 정규표현 방식을 사용해야 할 수도 있을 것이다.