database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 1222 게시물 읽기
No. 1222
Re: 대소문자 구분없이 select 하고자 할때...
작성자
정재익
작성일
2000-06-19 19:08
조회수
15,605

그렇습니다. ~* 연산자와 ~ 연산자는 MySQL 의 REGEXP 와 유사한 연산자로서 regular expression 으로 비교연산을 가능하게 합니다. 이중에서 ~ 는 대소문자 구별하여 regular expression search 를 하고, ~* 는 대소문자 구별을 하지 않고 regular expression search 를 시행합니다.

그러니 말씀하신 내용은 정확히 맞습니다. 하지만 몇가지 문제를 짚고 넘어가야 합니다. 속도상의 이득이 있을것인가 하는 것입니다. 굳이 단어로 찾을 예정이라면 ~* '.*search_text.*' 이런식의 수식은 그냥 like lower('search_text') 보다 엄청나게 느리게 됩니다. 그러므로 그렇게 옳바른 방법은 아닌 것 같습니다. 물론 이런 경우는 편하겠지요. 문자열의 처음이 advance 로 시작하는 문장을 찾아라. 이런 경우라면 저 정규식 연산자를 사용하지 않고는 해결이 되질 않는답니다. 개인적으로 프로그래밍을 할때 많이 사용하는 연산자이지만 함부로 정규식을 사용하는 것은 자제합니다. 10만 row 가 넘어 갈경우 복잡한 정규식을 사용하면 엄청난 인내심을 요구할 수도 있기 때문입니다.

 

> 제가 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하는 가장 확실한 방법 같네요..

> 그럼 열심히..~

[Top]
No.
제목
작성자
작성일
조회
1230C언어와 데이타 베이스 연동
초보자
2000-06-20
9810
1258┕>Re: C언어와 데이타 베이스 연동
정재익
2000-06-23 15:51:01
10656
1229감사합니다. 정재익님.
정철
2000-06-20
12106
1240┕>Re: 감사합니다. 정재익님.
정재익
2000-06-22 04:14:14
11476
1226디비삽입할때...빨리알려주세요^^
초보짱
2000-06-20
10587
1227┕>Re: 디비삽입할때...빨리알려주세요^^
정재익
2000-06-20 16:48:49
11281
1221대소문자 구분없이 select 하고자 할때...
최성철
2000-06-19
11453
1222┕>Re: 대소문자 구분없이 select 하고자 할때...
정재익
2000-06-19 19:08:25
15605
1223 ┕>Re: Re: 대소문자 구분없이 select 하고자 할때...
최성철
2000-06-19 20:55:41
11289
2505  ┕>Re: Re: Re: 대소문자 구분없이 select 하고자 할때...
2001-03-28 18:10:33
10930
1218대량의 데이터에서 최근 일정개수의 row만을 search하고 싶습니다.
정철
2000-06-19
12373
1219┕>Re: 대량의 데이터에서 최근 일정개수의 row만을 search하고 싶습니다.
정재익
2000-06-19 17:19:24
12719
1224 ┕>Re: Re: 대량의 데이터에서 최근 일정개수의 row만을 search하고 싶습니다.
정철
2000-06-20 09:47:47
12365
1228  ┕>Re: Re: Re: 대량의 데이터에서 최근 일정개수의 row만을 search하고 싶습니다.
정재익
2000-06-20 16:51:45
12941
1210postgresql 한글 man문서를 열수가 없군여? 에러가 나여
이용진
2000-06-19
12234
1214┕>Re: postgresql 한글 man문서를 열수가 없군여? 에러가 나여
정재익
2000-06-19 12:36:32
12852
1209포스트그레스? 포스트그리? 포스트그레? 포스트그리스퀄?
조성문
2000-06-19
12898
1212┕>Re: 포스트그레스? 포스트그리? 포스트그레? 포스트그리스퀄?
김종혁
2000-06-19 12:28:09
14039
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다