태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

알쯔의 외부기억장치

SQLite3 에서 WHERE FIELD LIKE '%KEYWORD%' 의 쿼리문을 날리기 위한 방법입니다.
Objective-C 에서는 % 가 특별한 문자로 인식되는데다가, 쿼리문을 bind 해서 처리하려니 이것저것 걸리는 것이 많더군요.

일단, 키워드를 % 로 감싸주는 방법입니다.
NSString *keyword = @"keyword";
NSString *wildcardKeyword = [NSString stringWithFormat:@"%@%%", keyword];
// 위의 방법은 키워드%가 되겠습니다.
NSString *wildcardKeyword = [NSString stringWithFormat:@"%%%@%%", keyword];
// 위의 방법은 %키워드%가 되겠습니다.

적당히 와일드카드 검색을 위한 키워드의 조작이 끝났으면, 쿼리문을 작성합니다.

const char  *query = "SELECT * FROM TABLE WHERE FIELD1 LIKE ?001 OR FIELD2 LIKE ?002";

여기서 ?001과, ?002에 키워드를 바인딩할겁니다. ?001, ?002 양쪽에 '(콤마)가 없음을 유의하세요.

sqlite3_stmt *stmt;
if (sqlite3_prepare_v2(database, query, -1, &stmt, nil) == SQLITE_OK) {
    sqlite3_bind_text(stmt, 1, [wildcardKeyword UTF8String],  -1, SQLITE_STATIC);
    sqlite3_bind_text(stmt, 2, [wildcardKeyword UTF8String],  -1, SQLITE_STATIC);
    // 이하생략

하면 할수록 오묘한 언어입니다. 크윽 ㅠ _ㅠ
저작자 표시 비영리 변경 금지
Posted by 알쯔
이럴땐, 이렇게!/프로그래밍 l 2010/04/21 00:47

TRACKBACK :: http://blog.arzz.com/trackback/403 관련글 쓰기

댓글을 달아 주세요

1  ... 21 22 23 24 25 26 27 28 29  ... 387 

카테고리

분류 전체보기 (387)
프로필 (2)
일상이야기 (216)
세상바라보기 (9)
미디어로그 (16)
주절거림 (57)
엔터테인먼트로그 (17)
이럴땐, 이렇게! (50)
개발항해록 (20)

달력

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29