2013-01-10 3 views
1

첫 번째 Android 애플리케이션에 쓰고 SQLite 데이터베이스를 사용하여 여러 테이블에 데이터를 저장합니다. 내 테이블 중 하나는 특정 검색에 해당하는 페이지 묶음의 URL을 포함합니다.SQLite 3 데이터베이스에서 URL 문자열 쿼리

내 데이터베이스에 문자열 필드를 사용하여 쉽게 html을 저장할 수 있습니다 (html : //mysite.org/blah/blah.htm 또는 내가하는 일에 따라 * .jpg 형식으로) . 이러한 URL은 데이터베이스에서도 쉽게 검색 할 수 있습니다.

그러나 더 효율적이기 위해 이러한 URL을 한 번만 구문 분석하고 추가하려고합니다. 나는 테이블에 대한 URL을 검색하고 URL이 이미 존재하지 않는 경우에만 구문 분석하고 추가 할 수 있기를 원합니다. 문제는 특수 문자 (콜론과 마침표)가 쿼리 문자이기 때문에 문제를 일으키는 것입니다. 나는 괄호 ({})를 사용하고, 작은 따옴표 (')가있는 쿼리의 URL을 둘러 보았고 백 슬래시를 사용해 보았습니다.

쿼리 할 수 ​​있도록 여기에 누락 된 내용이 있습니까 : SELECT * from TABLE WHERE url = "http : //*.htm"?

또한 URL을 데이터베이스에 저장하는 가장 좋은 방법입니까? 내가 다루고있는 URL은 때때로 검색 양식에서 값이 채워진 검색 URL이므로 특수 문자가있을 수 있습니다 (Craigslist 검색을 생각해보십시오)?

모든 방향에 크게 감사드립니다!

답변

0

documentation of the LIKE operator을 읽으십시오.

SELECT * FROM MyTable WHERE url LIKE 'http://%.htm' 

또한,이 검색 문자열 % 또는 _ 문자를 포함 할 수있다, 그래서 당신은 ESCAPE 절을 사용한다 : 쿼리는 다음과 같이한다.

String searchPattern = "http://%.htm%"; 
Cursor c = db.rawQuery("SELECT * FROM MyTable WHERE url LIKE ?", 
         new String[] { searchPattern }); 
: SQL 명령, 사용 매개 변수를 구성 할 때

은 당신을 여행하지 않는 ' 같은 특별한 문자를 확인하려면