2013-10-19 3 views
0

데이터를 삽입 할 IPhone 응용 프로그램이 있습니다. 어떤 조건없이 모든 데이터를 가져올 때 잘 작동하면Sql Join은 sqlite 테이블에 새로 삽입 된 행을 표시하지 않습니다.

다음 쿼리와 같은 조건이 주어지면 아무 문제없이 작동합니다. 그러면 아무 것도 표시되지 않습니다. 나는 그것을 추가 모든 레코드를 표시 한 후 select * form ContentMaster를 사용하는 경우

NSString *select = 
      [NSString stringWithFormat: 
       @"SELECT * from ContentMaster As ml 
          LEFT JOIN ContentTagging As cat 
          ON cat.ContentID = ml.ContentID 
       where cat.ContenTagText= \'%@\'" ,appDelegate.tagInput]; 


const char *sql = [select UTF8String];   

그런 다음이를 사용하여 어떤 일을 표시하지 않습니다.

+1

제쳐두고 SQL 문을 작성하는 데'stringWithFormat'을 사용해서는 안됩니다. 'tagInput'에 아포스트로피가 있다면? 코드가 실패합니다. 너해야 해. 항상'? '자리 표시자를 사용하고 텍스트 값을'sqlite3_bind_text'로 묶으십시오. – Rob

+1

'sqlite3_prepare_v2'는'SQLITE_OK'를 리턴 했습니까? 그렇지 않다면,'sqlite3_errmsg'는 무엇을보고 했습니까? 두 테이블에 대해'schema table_info()'뿐만 아니라 더 많은 코드를 공유 할 수 있습니다. 'ContenTagText'는 의심스러워 보입니다. (ContentTagText입니까?)하지만 더 많은 코드와 테이블 스키마에 대한 정보, 테이블에있는 몇 가지 레코드가 없으면 우리를 도와 줄 수 없습니다. – Rob

+0

'tagInput'의 값은 무엇입니까? –

답변

0

시도해보십시오.

SELECT * from ContentMaster 
LEFT JOIN ContentTagging 
ON ContentMaster.ContentID = ContentTagging.ContentID 
WHERE ContentTagging.ContenTagText= \'%@\'" 
+0

왜? 이것에 대해 다른 점은 무엇입니까? –

관련 문제