박태성 님이 쓰신 글 :
: select tel || name as Total, tel, name from client where total like '홍길동'
:
: 이런식으로 컬럼2개를 연결후 Total이라고 이름을 만들어준후 이필드에서 검색값을 찾고
:
: 싶은데 Total이라는 컬럼명을 알수 없다는 에러가 나면서 퀴리가 실행되지 않는군요
:
: 고객조회 퀴리를 만들고 있는데 전체컬럼에서 단일 값을 주고 검색을 해 볼려고 하니 잘 안되는군요
:
: (MS Access에서는 이런식으로 임시로 만든 컬럼명으로 퀴리가 가능했었는데 파이어버드에서는
:
: 안된는건가요?)
:
:
: 전체 컬럼에서 조회를 할려고 하면 조건식을 여러개 주는것보다 이게 편할것 같은데요
:
: ex1)
: select Tel, Name from client where (Tel like '홍길동%') or (Name like '홍길동%');
:
: ex2)
: select Tel || Name as Total, Tel, Name from client where total like '홍길동%'
:
: 찾고자하는 컬럼이 많을 경우 2번의 경우가 편할것 같은데 방법이 없습니까?
안녕하세요. 까막입니다.
가능은 합니다.
WHERE Tel || Name LIKE '홍길동%'
이렇게 하면 됩니다.
그렇지만!!!
위 처럼 하시면 인덱스 활용 가능성은 0% 입니다.
아주아주 나쁜 습관입니다.
물론 그 이전에 Tel 이라는 필드 - 아마 전화번호로 보이는데 - 에 홍길동이라는 값이 들어간다는 것이 더 나쁜 구조로 보이고요.
조건값에 2개 이상의 필드를 합치거나 필드값의 일부를 떼어오는 방식은 절대 사용해서는 안될 방식입니다.
시스템이 심각하게 느려집니다. -> 아마 개발시에는 못 느낄겁니다. 데이터가 작아서.
가능하면 인덱스를 활용할 수 있는 방식으로 구현하는 습관을 들이시길 바랍니다.
실제 인덱스가 없다고 하더라도요.
혼이 살아 있을까.... 대한민국.
|