제가 pstgresql로 대소문자 검색을 하고자 했는데..
그것에 관한 문서가 눈에 쉽게 안 띄었고,,
View를 만든다던지하는 편법(?)을 써야 하는 걸로 여기 게시판에 올라와 있었습니다.
그런데..
제가 postgresql Mailing list에 찾아 보니깐..
흥미로운 부분이 있어서 이렇게 글을 올립니다.
여기서부터는 내용입니다.
> I have this script:
> SELECT a.attname, t.typname, a.attlen
> FROM pg_class c, pg_attribute a, pg_type t
> WHERE c.relname = 'regis' and a.attname in
> ('var1','var2',var3');
>
> but a.attname is of type name, inwhich text(..) or lower(..)
> do not work with this type and I do not seem to be able to
> convert type name to text....
>
> Can someone help me get around this?
>
You could use case/insensitive regex operator / Your query should looks
like following:
SELECT a.attname, t.typname, a.attlen
FROM pg_class c, pg_attribute a, pg_type t
WHERE c.relname = 'regis' and (a.attname ~*'var1' OR
a.attname~*'var2' OR a.attname~*'var3');
May be this helps
Rem
여기에 보면,
a.attname ~*'var1'
라는 부분이 있습니다.
~* 는 제가 해본 결과 like '%text%'
와 같은 구문으로 text가 대소문자를 구분하지 않는 것 같습니다.
아직 확실히 테스트를 하지는 못했지만..
이 방법이 대소문자를 구분하지 않고 select하는 가장 확실한 방법 같네요..
그럼 열심히..~
|